home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 April: Mac OS SDK / Dev.CD Apr 96 SDK / Dev.CD Apr 96 SDK2.toast / Development Kits (Disc 2) / QuickTime / Programming Stuff / QuickTime 2.1 for Developers / Interfaces / AIncludes / QuickTimeComponents.a < prev   
Encoding:
Text File  |  1995-08-07  |  178.2 KB  |  8,575 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        QuickTimeComponents.a
  3. ;
  4. ;    Contains:    QuickTime interfaces
  5. ;
  6. ;    Version:    
  7. ;
  8. ;    DRI:        Jim Batson
  9. ;
  10. ;    Copyright:    © 1984-1994 by Apple Computer, Inc.
  11. ;                All rights reserved.
  12. ;
  13. ;    Warning:    *** APPLE INTERNAL USE ONLY ***
  14. ;                This file may contain unreleased API's
  15. ;
  16. ;    BuildInfo:    Built by:            QuickTime
  17. ;                With Interfacer:    1.1d11  
  18. ;                From:                QuickTimeComponents.i
  19. ;                    Revision:        0
  20. ;                    Dated:            08/07/95
  21. ;                    Last change by:    JB
  22. ;                    Last comment:    This is a fake header used so interfacer is happy.
  23. ;
  24. ;    Bugs:        Report bugs to Radar component “System Interfaces”, “Latest”
  25. ;                List the version information (from above) in the Problem Description.
  26. ;
  27. ;
  28.  
  29.     IF &TYPE('__QUICKTIMECOMPONENTS__') = 'UNDEFINED' THEN
  30. __QUICKTIMECOMPONENTS__ SET 1
  31.  
  32.  
  33.     IF &TYPE('__COMPONENTS__') = 'UNDEFINED' THEN
  34.     include 'Components.a'
  35.     ENDIF
  36. ;        include 'Types.a'                                            ;
  37. ;            include 'ConditionalMacros.a'                            ;
  38. ;        include 'MixedMode.a'                                        ;
  39.  
  40.     IF &TYPE('__IMAGECOMPRESSION__') = 'UNDEFINED' THEN
  41.     include 'ImageCompression.a'
  42.     ENDIF
  43. ;        include 'Quickdraw.a'                                        ;
  44. ;            include 'QuickdrawText.a'                                ;
  45. ;        include 'QDOffscreen.a'                                    ;
  46. ;            include 'Errors.a'                                        ;
  47. ;        include 'Windows.a'                                        ;
  48. ;            include 'Memory.a'                                        ;
  49. ;            include 'Events.a'                                        ;
  50. ;                include 'OSUtils.a'                                ;
  51. ;            include 'Controls.a'                                    ;
  52. ;                include 'Menus.a'                                    ;
  53. ;        include 'StandardFile.a'                                    ;
  54. ;            include 'Dialogs.a'                                    ;
  55. ;                include 'TextEdit.a'                                ;
  56. ;            include 'Files.a'                                        ;
  57.  
  58.     IF &TYPE('__MOVIES__') = 'UNDEFINED' THEN
  59.     include 'Movies.a'
  60.     ENDIF
  61. ;        include 'Aliases.a'                                        ;
  62. ;            include 'AppleTalk.a'                                    ;
  63.  
  64.     IF &TYPE('__VIDEO__') = 'UNDEFINED' THEN
  65.     include 'Video.a'
  66.     ENDIF
  67.  
  68.     IF &TYPE('__SOUND__') = 'UNDEFINED' THEN
  69.     include 'Sound.a'
  70.     ENDIF
  71.  
  72. clockComponentType                EQU        'clok'
  73. systemTickClock                    EQU        'tick'                ; subtype: 60ths since boot        
  74. systemSecondClock                EQU        'seco'                ; subtype: seconds since 1904        
  75. systemMillisecondClock            EQU        'mill'                ; subtype: 1000ths since boot        
  76. systemMicrosecondClock            EQU        'micr'
  77.  
  78. kClockRateIsLinear                EQU        1
  79. kClockImplementsCallBacks        EQU        2
  80.  
  81. ;
  82. ; pascal ComponentResult ClockGetTime(ComponentInstance aClock, TimeRecord *out)
  83. ;
  84.     IF ¬ GENERATINGCFM THEN
  85.         Macro
  86.         _ClockGetTime
  87.             dc.w     $2F3C
  88.             dc.w     $0004
  89.             dc.w     $0001
  90.             moveq    #0,d0
  91.             dc.w     $A82A
  92.         EndM
  93.     ELSE
  94.         IMPORT    ClockGetTime
  95.     ENDIF
  96.  
  97. ;
  98. ; pascal QTCallBack ClockNewCallBack(ComponentInstance aClock, TimeBase tb, short callBackType)
  99. ;
  100.     IF ¬ GENERATINGCFM THEN
  101.         Macro
  102.         _ClockNewCallBack
  103.             dc.w     $2F3C
  104.             dc.w     $0006
  105.             dc.w     $0002
  106.             moveq    #0,d0
  107.             dc.w     $A82A
  108.         EndM
  109.     ELSE
  110.         IMPORT    ClockNewCallBack
  111.     ENDIF
  112.  
  113. ;
  114. ; pascal ComponentResult ClockDisposeCallBack(ComponentInstance aClock, QTCallBack cb)
  115. ;
  116.     IF ¬ GENERATINGCFM THEN
  117.         Macro
  118.         _ClockDisposeCallBack
  119.             dc.w     $2F3C
  120.             dc.w     $0004
  121.             dc.w     $0003
  122.             moveq    #0,d0
  123.             dc.w     $A82A
  124.         EndM
  125.     ELSE
  126.         IMPORT    ClockDisposeCallBack
  127.     ENDIF
  128.  
  129. ;
  130. ; pascal ComponentResult ClockCallMeWhen(ComponentInstance aClock, QTCallBack cb, long param1, long param2, long param3)
  131. ;
  132.     IF ¬ GENERATINGCFM THEN
  133.         Macro
  134.         _ClockCallMeWhen
  135.             dc.w     $2F3C
  136.             dc.w     $0010
  137.             dc.w     $0004
  138.             moveq    #0,d0
  139.             dc.w     $A82A
  140.         EndM
  141.     ELSE
  142.         IMPORT    ClockCallMeWhen
  143.     ENDIF
  144.  
  145. ;
  146. ; pascal ComponentResult ClockCancelCallBack(ComponentInstance aClock, QTCallBack cb)
  147. ;
  148.     IF ¬ GENERATINGCFM THEN
  149.         Macro
  150.         _ClockCancelCallBack
  151.             dc.w     $2F3C
  152.             dc.w     $0004
  153.             dc.w     $0005
  154.             moveq    #0,d0
  155.             dc.w     $A82A
  156.         EndM
  157.     ELSE
  158.         IMPORT    ClockCancelCallBack
  159.     ENDIF
  160.  
  161. ;
  162. ; pascal ComponentResult ClockRateChanged(ComponentInstance aClock, QTCallBack cb)
  163. ;
  164.     IF ¬ GENERATINGCFM THEN
  165.         Macro
  166.         _ClockRateChanged
  167.             dc.w     $2F3C
  168.             dc.w     $0004
  169.             dc.w     $0006
  170.             moveq    #0,d0
  171.             dc.w     $A82A
  172.         EndM
  173.     ELSE
  174.         IMPORT    ClockRateChanged
  175.     ENDIF
  176.  
  177. ;
  178. ; pascal ComponentResult ClockTimeChanged(ComponentInstance aClock, QTCallBack cb)
  179. ;
  180.     IF ¬ GENERATINGCFM THEN
  181.         Macro
  182.         _ClockTimeChanged
  183.             dc.w     $2F3C
  184.             dc.w     $0004
  185.             dc.w     $0007
  186.             moveq    #0,d0
  187.             dc.w     $A82A
  188.         EndM
  189.     ELSE
  190.         IMPORT    ClockTimeChanged
  191.     ENDIF
  192.  
  193. ;
  194. ; pascal ComponentResult ClockSetTimeBase(ComponentInstance aClock, TimeBase tb)
  195. ;
  196.     IF ¬ GENERATINGCFM THEN
  197.         Macro
  198.         _ClockSetTimeBase
  199.             dc.w     $2F3C
  200.             dc.w     $0004
  201.             dc.w     $0008
  202.             moveq    #0,d0
  203.             dc.w     $A82A
  204.         EndM
  205.     ELSE
  206.         IMPORT    ClockSetTimeBase
  207.     ENDIF
  208.  
  209. ;
  210. ; pascal ComponentResult ClockStartStopChanged(ComponentInstance aClock, QTCallBack cb, Boolean startChanged, Boolean stopChanged)
  211. ;
  212.     IF ¬ GENERATINGCFM THEN
  213.         Macro
  214.         _ClockStartStopChanged
  215.             dc.w     $2F3C
  216.             dc.w     $0008
  217.             dc.w     $0009
  218.             moveq    #0,d0
  219.             dc.w     $A82A
  220.         EndM
  221.     ELSE
  222.         IMPORT    ClockStartStopChanged
  223.     ENDIF
  224.  
  225. ;
  226. ; pascal ComponentResult ClockGetRate(ComponentInstance aClock, Fixed *rate)
  227. ;
  228.     IF ¬ GENERATINGCFM THEN
  229.         Macro
  230.         _ClockGetRate
  231.             dc.w     $2F3C
  232.             dc.w     $0004
  233.             dc.w     $000A
  234.             moveq    #0,d0
  235.             dc.w     $A82A
  236.         EndM
  237.     ELSE
  238.         IMPORT    ClockGetRate
  239.     ENDIF
  240.  
  241. kClockGetTimeSelect                EQU        $1
  242. kClockNewCallBackSelect            EQU        $2
  243. kClockDisposeCallBackSelect        EQU        $3
  244. kClockCallMeWhenSelect            EQU        $4
  245. kClockCancelCallBackSelect        EQU        $5
  246. kClockRateChangedSelect            EQU        $6
  247. kClockTimeChangedSelect            EQU        $7
  248. kClockSetTimeBaseSelect            EQU        $8
  249. kClockStartStopChangedSelect    EQU        $9
  250. kClockGetRateSelect                EQU        $A
  251.  
  252. ;
  253. ;    General Sequence Grab stuff
  254. ;
  255. ; typedef ComponentInstance  SeqGrabComponent
  256. ; typedef ComponentInstance  SGChannel
  257.  
  258. SeqGrabComponentType            EQU        'barg'
  259. SeqGrabChannelType                EQU        'sgch'
  260. SeqGrabPanelType                EQU        'sgpn'
  261. SeqGrabCompressionPanelType        EQU        'cmpr'
  262. SeqGrabSourcePanelType            EQU        'sour'
  263.  
  264. seqGrabToDisk                    EQU        1
  265. seqGrabToMemory                    EQU        2
  266. seqGrabDontUseTempMemory        EQU        4
  267. seqGrabAppendToFile                EQU        8
  268. seqGrabDontAddMovieResource        EQU        16
  269. seqGrabDontMakeMovie            EQU        32
  270. seqGrabPreExtendFile            EQU        64
  271. seqGrabDataProcIsInterruptSafe    EQU        128
  272. seqGrabDataProcDoesOverlappingReads EQU        256
  273.  
  274. ; typedef unsigned long     SeqGrabDataOutputEnum
  275.  
  276. seqGrabRecord                    EQU        1
  277. seqGrabPreview                    EQU        2
  278. seqGrabPlayDuringRecord            EQU        4
  279.  
  280. ; typedef unsigned long     SeqGrabUsageEnum
  281.  
  282. seqGrabHasBounds                EQU        1
  283. seqGrabHasVolume                EQU        2
  284. seqGrabHasDiscreteSamples        EQU        4
  285.  
  286. ; typedef unsigned long     SeqGrabChannelInfoEnum
  287. SeqGrabFrameInfo         RECORD    0
  288. frameOffset                 ds.l    1
  289. frameTime                 ds.l    1
  290. frameSize                 ds.l    1
  291. frameChannel             ds.l    1
  292. frameRefCon                 ds.l    1
  293. sizeof                     EQU    *
  294.                         ENDR
  295.  
  296. ; typedef struct SeqGrabFrameInfo  SeqGrabFrameInfo, *SeqGrabFrameInfoPtr
  297.  
  298. grabPictOffScreen                EQU        1
  299. grabPictIgnoreClip                EQU        2
  300. grabPictCurrentImage            EQU        4
  301.  
  302. sgFlagControlledGrab            EQU        (1 << 0)
  303.  
  304. SGDeviceName             RECORD    0
  305. name                     ds.l    16
  306. icon                     ds.l    1
  307. flags                     ds.l    1
  308. refCon                     ds.l    1
  309. reserved                 ds.l    1                                    ; zero
  310. sizeof                     EQU    *
  311.                         ENDR
  312.  
  313. ; typedef struct SGDeviceName  SGDeviceName
  314.  
  315. sgDeviceNameFlagDeviceUnavailable EQU        (1 << 0)
  316.  
  317. SGDeviceListRecord         RECORD    0
  318. count                     ds.w    1
  319. selectedIndex             ds.w    1
  320. reserved                 ds.l    1                                    ; zero
  321. entry                     ds        SGDeviceName
  322. sizeof                     EQU    *
  323.                         ENDR
  324.  
  325. ; typedef struct SGDeviceListRecord  SGDeviceListRecord, *SGDeviceListPtr, **SGDeviceList
  326.  
  327. sgDeviceListWithIcons            EQU        (1 << 0)
  328. sgDeviceListDontCheckAvailability EQU        (1 << 1)
  329.  
  330. seqGrabWriteAppend                EQU        0
  331. seqGrabWriteReserve                EQU        1
  332. seqGrabWriteFill                EQU        2
  333.  
  334. seqGrabUnpause                    EQU        0
  335. seqGrabPause                    EQU        1
  336. seqGrabPauseForMenu                EQU        3
  337.  
  338. channelFlagDontOpenResFile        EQU        2
  339. channelFlagHasDependency        EQU        4
  340.  
  341. sgPanelFlagForPanel                EQU        1
  342.  
  343. seqGrabSettingsPreviewOnly        EQU        1
  344.  
  345. SGOutputRecord             RECORD    0
  346. data                     ds.l    1
  347. sizeof                     EQU    *
  348.                         ENDR
  349.  
  350. ; typedef struct SGOutputRecord  SGOutputRecord, *SGOutput
  351.  
  352. channelPlayNormal                EQU        0
  353. channelPlayFast                    EQU        1
  354. channelPlayHighQuality            EQU        2
  355. channelPlayAllData                EQU        4
  356.  
  357. ;
  358. ; pascal ComponentResult SGInitialize(SeqGrabComponent s)
  359. ;
  360.     IF ¬ GENERATINGCFM THEN
  361.         Macro
  362.         _SGInitialize
  363.             dc.w     $2F3C
  364.             dc.w     $0000
  365.             dc.w     $0001
  366.             moveq    #0,d0
  367.             dc.w     $A82A
  368.         EndM
  369.     ELSE
  370.         IMPORT    SGInitialize
  371.     ENDIF
  372.  
  373. ;
  374. ; pascal ComponentResult SGSetDataOutput(SeqGrabComponent s, const FSSpec *movieFile, long whereFlags)
  375. ;
  376.     IF ¬ GENERATINGCFM THEN
  377.         Macro
  378.         _SGSetDataOutput
  379.             dc.w     $2F3C
  380.             dc.w     $0008
  381.             dc.w     $0002
  382.             moveq    #0,d0
  383.             dc.w     $A82A
  384.         EndM
  385.     ELSE
  386.         IMPORT    SGSetDataOutput
  387.     ENDIF
  388.  
  389. ;
  390. ; pascal ComponentResult SGGetDataOutput(SeqGrabComponent s, FSSpec *movieFile, long *whereFlags)
  391. ;
  392.     IF ¬ GENERATINGCFM THEN
  393.         Macro
  394.         _SGGetDataOutput
  395.             dc.w     $2F3C
  396.             dc.w     $0008
  397.             dc.w     $0003
  398.             moveq    #0,d0
  399.             dc.w     $A82A
  400.         EndM
  401.     ELSE
  402.         IMPORT    SGGetDataOutput
  403.     ENDIF
  404.  
  405. ;
  406. ; pascal ComponentResult SGSetGWorld(SeqGrabComponent s, CGrafPtr gp, GDHandle gd)
  407. ;
  408.     IF ¬ GENERATINGCFM THEN
  409.         Macro
  410.         _SGSetGWorld
  411.             dc.w     $2F3C
  412.             dc.w     $0008
  413.             dc.w     $0004
  414.             moveq    #0,d0
  415.             dc.w     $A82A
  416.         EndM
  417.     ELSE
  418.         IMPORT    SGSetGWorld
  419.     ENDIF
  420.  
  421. ;
  422. ; pascal ComponentResult SGGetGWorld(SeqGrabComponent s, CGrafPtr *gp, GDHandle *gd)
  423. ;
  424.     IF ¬ GENERATINGCFM THEN
  425.         Macro
  426.         _SGGetGWorld
  427.             dc.w     $2F3C
  428.             dc.w     $0008
  429.             dc.w     $0005
  430.             moveq    #0,d0
  431.             dc.w     $A82A
  432.         EndM
  433.     ELSE
  434.         IMPORT    SGGetGWorld
  435.     ENDIF
  436.  
  437. ;
  438. ; pascal ComponentResult SGNewChannel(SeqGrabComponent s, OSType channelType, SGChannel *ref)
  439. ;
  440.     IF ¬ GENERATINGCFM THEN
  441.         Macro
  442.         _SGNewChannel
  443.             dc.w     $2F3C
  444.             dc.w     $0008
  445.             dc.w     $0006
  446.             moveq    #0,d0
  447.             dc.w     $A82A
  448.         EndM
  449.     ELSE
  450.         IMPORT    SGNewChannel
  451.     ENDIF
  452.  
  453. ;
  454. ; pascal ComponentResult SGDisposeChannel(SeqGrabComponent s, SGChannel c)
  455. ;
  456.     IF ¬ GENERATINGCFM THEN
  457.         Macro
  458.         _SGDisposeChannel
  459.             dc.w     $2F3C
  460.             dc.w     $0004
  461.             dc.w     $0007
  462.             moveq    #0,d0
  463.             dc.w     $A82A
  464.         EndM
  465.     ELSE
  466.         IMPORT    SGDisposeChannel
  467.     ENDIF
  468.  
  469. ;
  470. ; pascal ComponentResult SGStartPreview(SeqGrabComponent s)
  471. ;
  472.     IF ¬ GENERATINGCFM THEN
  473.         Macro
  474.         _SGStartPreview
  475.             dc.w     $2F3C
  476.             dc.w     $0000
  477.             dc.w     $0010
  478.             moveq    #0,d0
  479.             dc.w     $A82A
  480.         EndM
  481.     ELSE
  482.         IMPORT    SGStartPreview
  483.     ENDIF
  484.  
  485. ;
  486. ; pascal ComponentResult SGStartRecord(SeqGrabComponent s)
  487. ;
  488.     IF ¬ GENERATINGCFM THEN
  489.         Macro
  490.         _SGStartRecord
  491.             dc.w     $2F3C
  492.             dc.w     $0000
  493.             dc.w     $0011
  494.             moveq    #0,d0
  495.             dc.w     $A82A
  496.         EndM
  497.     ELSE
  498.         IMPORT    SGStartRecord
  499.     ENDIF
  500.  
  501. ;
  502. ; pascal ComponentResult SGIdle(SeqGrabComponent s)
  503. ;
  504.     IF ¬ GENERATINGCFM THEN
  505.         Macro
  506.         _SGIdle
  507.             dc.w     $2F3C
  508.             dc.w     $0000
  509.             dc.w     $0012
  510.             moveq    #0,d0
  511.             dc.w     $A82A
  512.         EndM
  513.     ELSE
  514.         IMPORT    SGIdle
  515.     ENDIF
  516.  
  517. ;
  518. ; pascal ComponentResult SGStop(SeqGrabComponent s)
  519. ;
  520.     IF ¬ GENERATINGCFM THEN
  521.         Macro
  522.         _SGStop
  523.             dc.w     $2F3C
  524.             dc.w     $0000
  525.             dc.w     $0013
  526.             moveq    #0,d0
  527.             dc.w     $A82A
  528.         EndM
  529.     ELSE
  530.         IMPORT    SGStop
  531.     ENDIF
  532.  
  533. ;
  534. ; pascal ComponentResult SGPause(SeqGrabComponent s, Byte pause)
  535. ;
  536.     IF ¬ GENERATINGCFM THEN
  537.         Macro
  538.         _SGPause
  539.             dc.w     $2F3C
  540.             dc.w     $0002
  541.             dc.w     $0014
  542.             moveq    #0,d0
  543.             dc.w     $A82A
  544.         EndM
  545.     ELSE
  546.         IMPORT    SGPause
  547.     ENDIF
  548.  
  549. ;
  550. ; pascal ComponentResult SGPrepare(SeqGrabComponent s, Boolean prepareForPreview, Boolean prepareForRecord)
  551. ;
  552.     IF ¬ GENERATINGCFM THEN
  553.         Macro
  554.         _SGPrepare
  555.             dc.w     $2F3C
  556.             dc.w     $0004
  557.             dc.w     $0015
  558.             moveq    #0,d0
  559.             dc.w     $A82A
  560.         EndM
  561.     ELSE
  562.         IMPORT    SGPrepare
  563.     ENDIF
  564.  
  565. ;
  566. ; pascal ComponentResult SGRelease(SeqGrabComponent s)
  567. ;
  568.     IF ¬ GENERATINGCFM THEN
  569.         Macro
  570.         _SGRelease
  571.             dc.w     $2F3C
  572.             dc.w     $0000
  573.             dc.w     $0016
  574.             moveq    #0,d0
  575.             dc.w     $A82A
  576.         EndM
  577.     ELSE
  578.         IMPORT    SGRelease
  579.     ENDIF
  580.  
  581. ;
  582. ; pascal Movie SGGetMovie(SeqGrabComponent s)
  583. ;
  584.     IF ¬ GENERATINGCFM THEN
  585.         Macro
  586.         _SGGetMovie
  587.             dc.w     $2F3C
  588.             dc.w     $0000
  589.             dc.w     $0017
  590.             moveq    #0,d0
  591.             dc.w     $A82A
  592.         EndM
  593.     ELSE
  594.         IMPORT    SGGetMovie
  595.     ENDIF
  596.  
  597. ;
  598. ; pascal ComponentResult SGSetMaximumRecordTime(SeqGrabComponent s, unsigned long ticks)
  599. ;
  600.     IF ¬ GENERATINGCFM THEN
  601.         Macro
  602.         _SGSetMaximumRecordTime
  603.             dc.w     $2F3C
  604.             dc.w     $0004
  605.             dc.w     $0018
  606.             moveq    #0,d0
  607.             dc.w     $A82A
  608.         EndM
  609.     ELSE
  610.         IMPORT    SGSetMaximumRecordTime
  611.     ENDIF
  612.  
  613. ;
  614. ; pascal ComponentResult SGGetMaximumRecordTime(SeqGrabComponent s, unsigned long *ticks)
  615. ;
  616.     IF ¬ GENERATINGCFM THEN
  617.         Macro
  618.         _SGGetMaximumRecordTime
  619.             dc.w     $2F3C
  620.             dc.w     $0004
  621.             dc.w     $0019
  622.             moveq    #0,d0
  623.             dc.w     $A82A
  624.         EndM
  625.     ELSE
  626.         IMPORT    SGGetMaximumRecordTime
  627.     ENDIF
  628.  
  629. ;
  630. ; pascal ComponentResult SGGetStorageSpaceRemaining(SeqGrabComponent s, unsigned long *bytes)
  631. ;
  632.     IF ¬ GENERATINGCFM THEN
  633.         Macro
  634.         _SGGetStorageSpaceRemaining
  635.             dc.w     $2F3C
  636.             dc.w     $0004
  637.             dc.w     $001A
  638.             moveq    #0,d0
  639.             dc.w     $A82A
  640.         EndM
  641.     ELSE
  642.         IMPORT    SGGetStorageSpaceRemaining
  643.     ENDIF
  644.  
  645. ;
  646. ; pascal ComponentResult SGGetTimeRemaining(SeqGrabComponent s, long *ticksLeft)
  647. ;
  648.     IF ¬ GENERATINGCFM THEN
  649.         Macro
  650.         _SGGetTimeRemaining
  651.             dc.w     $2F3C
  652.             dc.w     $0004
  653.             dc.w     $001B
  654.             moveq    #0,d0
  655.             dc.w     $A82A
  656.         EndM
  657.     ELSE
  658.         IMPORT    SGGetTimeRemaining
  659.     ENDIF
  660.  
  661. ;
  662. ; pascal ComponentResult SGGrabPict(SeqGrabComponent s, PicHandle *p, const Rect *bounds, short offscreenDepth, long grabPictFlags)
  663. ;
  664.     IF ¬ GENERATINGCFM THEN
  665.         Macro
  666.         _SGGrabPict
  667.             dc.w     $2F3C
  668.             dc.w     $000E
  669.             dc.w     $001C
  670.             moveq    #0,d0
  671.             dc.w     $A82A
  672.         EndM
  673.     ELSE
  674.         IMPORT    SGGrabPict
  675.     ENDIF
  676.  
  677. ;
  678. ; pascal ComponentResult SGGetLastMovieResID(SeqGrabComponent s, short *resID)
  679. ;
  680.     IF ¬ GENERATINGCFM THEN
  681.         Macro
  682.         _SGGetLastMovieResID
  683.             dc.w     $2F3C
  684.             dc.w     $0004
  685.             dc.w     $001D
  686.             moveq    #0,d0
  687.             dc.w     $A82A
  688.         EndM
  689.     ELSE
  690.         IMPORT    SGGetLastMovieResID
  691.     ENDIF
  692.  
  693. ;
  694. ; pascal ComponentResult SGSetFlags(SeqGrabComponent s, long sgFlags)
  695. ;
  696.     IF ¬ GENERATINGCFM THEN
  697.         Macro
  698.         _SGSetFlags
  699.             dc.w     $2F3C
  700.             dc.w     $0004
  701.             dc.w     $001E
  702.             moveq    #0,d0
  703.             dc.w     $A82A
  704.         EndM
  705.     ELSE
  706.         IMPORT    SGSetFlags
  707.     ENDIF
  708.  
  709. ;
  710. ; pascal ComponentResult SGGetFlags(SeqGrabComponent s, long *sgFlags)
  711. ;
  712.     IF ¬ GENERATINGCFM THEN
  713.         Macro
  714.         _SGGetFlags
  715.             dc.w     $2F3C
  716.             dc.w     $0004
  717.             dc.w     $001F
  718.             moveq    #0,d0
  719.             dc.w     $A82A
  720.         EndM
  721.     ELSE
  722.         IMPORT    SGGetFlags
  723.     ENDIF
  724.  
  725. ;
  726. ; pascal ComponentResult SGSetDataProc(SeqGrabComponent s, SGDataUPP proc, long refCon)
  727. ;
  728.     IF ¬ GENERATINGCFM THEN
  729.         Macro
  730.         _SGSetDataProc
  731.             dc.w     $2F3C
  732.             dc.w     $0008
  733.             dc.w     $0020
  734.             moveq    #0,d0
  735.             dc.w     $A82A
  736.         EndM
  737.     ELSE
  738.         IMPORT    SGSetDataProc
  739.     ENDIF
  740.  
  741. ;
  742. ; pascal ComponentResult SGNewChannelFromComponent(SeqGrabComponent s, SGChannel *newChannel, Component sgChannelComponent)
  743. ;
  744.     IF ¬ GENERATINGCFM THEN
  745.         Macro
  746.         _SGNewChannelFromComponent
  747.             dc.w     $2F3C
  748.             dc.w     $0008
  749.             dc.w     $0021
  750.             moveq    #0,d0
  751.             dc.w     $A82A
  752.         EndM
  753.     ELSE
  754.         IMPORT    SGNewChannelFromComponent
  755.     ENDIF
  756.  
  757. ;
  758. ; pascal ComponentResult SGDisposeDeviceList(SeqGrabComponent s, SGDeviceList list)
  759. ;
  760.     IF ¬ GENERATINGCFM THEN
  761.         Macro
  762.         _SGDisposeDeviceList
  763.             dc.w     $2F3C
  764.             dc.w     $0004
  765.             dc.w     $0022
  766.             moveq    #0,d0
  767.             dc.w     $A82A
  768.         EndM
  769.     ELSE
  770.         IMPORT    SGDisposeDeviceList
  771.     ENDIF
  772.  
  773. ;
  774. ; pascal ComponentResult SGAppendDeviceListToMenu(SeqGrabComponent s, SGDeviceList list, MenuHandle mh)
  775. ;
  776.     IF ¬ GENERATINGCFM THEN
  777.         Macro
  778.         _SGAppendDeviceListToMenu
  779.             dc.w     $2F3C
  780.             dc.w     $0008
  781.             dc.w     $0023
  782.             moveq    #0,d0
  783.             dc.w     $A82A
  784.         EndM
  785.     ELSE
  786.         IMPORT    SGAppendDeviceListToMenu
  787.     ENDIF
  788.  
  789. ;
  790. ; pascal ComponentResult SGSetSettings(SeqGrabComponent s, UserData ud, long flags)
  791. ;
  792.     IF ¬ GENERATINGCFM THEN
  793.         Macro
  794.         _SGSetSettings
  795.             dc.w     $2F3C
  796.             dc.w     $0008
  797.             dc.w     $0024
  798.             moveq    #0,d0
  799.             dc.w     $A82A
  800.         EndM
  801.     ELSE
  802.         IMPORT    SGSetSettings
  803.     ENDIF
  804.  
  805. ;
  806. ; pascal ComponentResult SGGetSettings(SeqGrabComponent s, UserData *ud, long flags)
  807. ;
  808.     IF ¬ GENERATINGCFM THEN
  809.         Macro
  810.         _SGGetSettings
  811.             dc.w     $2F3C
  812.             dc.w     $0008
  813.             dc.w     $0025
  814.             moveq    #0,d0
  815.             dc.w     $A82A
  816.         EndM
  817.     ELSE
  818.         IMPORT    SGGetSettings
  819.     ENDIF
  820.  
  821. ;
  822. ; pascal ComponentResult SGGetIndChannel(SeqGrabComponent s, short index, SGChannel *ref, OSType *chanType)
  823. ;
  824.     IF ¬ GENERATINGCFM THEN
  825.         Macro
  826.         _SGGetIndChannel
  827.             dc.w     $2F3C
  828.             dc.w     $000A
  829.             dc.w     $0026
  830.             moveq    #0,d0
  831.             dc.w     $A82A
  832.         EndM
  833.     ELSE
  834.         IMPORT    SGGetIndChannel
  835.     ENDIF
  836.  
  837. ;
  838. ; pascal ComponentResult SGUpdate(SeqGrabComponent s, RgnHandle updateRgn)
  839. ;
  840.     IF ¬ GENERATINGCFM THEN
  841.         Macro
  842.         _SGUpdate
  843.             dc.w     $2F3C
  844.             dc.w     $0004
  845.             dc.w     $0027
  846.             moveq    #0,d0
  847.             dc.w     $A82A
  848.         EndM
  849.     ELSE
  850.         IMPORT    SGUpdate
  851.     ENDIF
  852.  
  853. ;
  854. ; pascal ComponentResult SGGetPause(SeqGrabComponent s, Byte *paused)
  855. ;
  856.     IF ¬ GENERATINGCFM THEN
  857.         Macro
  858.         _SGGetPause
  859.             dc.w     $2F3C
  860.             dc.w     $0004
  861.             dc.w     $0028
  862.             moveq    #0,d0
  863.             dc.w     $A82A
  864.         EndM
  865.     ELSE
  866.         IMPORT    SGGetPause
  867.     ENDIF
  868.  
  869. ;
  870. ; pascal ComponentResult SGSettingsDialog(SeqGrabComponent s, SGChannel c, short numPanels, Component *panelList, long flags, SGModalFilterUPP proc, long procRefNum)
  871. ;
  872.     IF ¬ GENERATINGCFM THEN
  873.         Macro
  874.         _SGSettingsDialog
  875.             dc.w     $2F3C
  876.             dc.w     $0016
  877.             dc.w     $0029
  878.             moveq    #0,d0
  879.             dc.w     $A82A
  880.         EndM
  881.     ELSE
  882.         IMPORT    SGSettingsDialog
  883.     ENDIF
  884.  
  885. ;
  886. ; pascal ComponentResult SGGetAlignmentProc(SeqGrabComponent s, ICMAlignmentProcRecordPtr alignmentProc)
  887. ;
  888.     IF ¬ GENERATINGCFM THEN
  889.         Macro
  890.         _SGGetAlignmentProc
  891.             dc.w     $2F3C
  892.             dc.w     $0004
  893.             dc.w     $002A
  894.             moveq    #0,d0
  895.             dc.w     $A82A
  896.         EndM
  897.     ELSE
  898.         IMPORT    SGGetAlignmentProc
  899.     ENDIF
  900.  
  901. ;
  902. ; pascal ComponentResult SGSetChannelSettings(SeqGrabComponent s, SGChannel c, UserData ud, long flags)
  903. ;
  904.     IF ¬ GENERATINGCFM THEN
  905.         Macro
  906.         _SGSetChannelSettings
  907.             dc.w     $2F3C
  908.             dc.w     $000C
  909.             dc.w     $002B
  910.             moveq    #0,d0
  911.             dc.w     $A82A
  912.         EndM
  913.     ELSE
  914.         IMPORT    SGSetChannelSettings
  915.     ENDIF
  916.  
  917. ;
  918. ; pascal ComponentResult SGGetChannelSettings(SeqGrabComponent s, SGChannel c, UserData *ud, long flags)
  919. ;
  920.     IF ¬ GENERATINGCFM THEN
  921.         Macro
  922.         _SGGetChannelSettings
  923.             dc.w     $2F3C
  924.             dc.w     $000C
  925.             dc.w     $002C
  926.             moveq    #0,d0
  927.             dc.w     $A82A
  928.         EndM
  929.     ELSE
  930.         IMPORT    SGGetChannelSettings
  931.     ENDIF
  932.  
  933. ;
  934. ; pascal ComponentResult SGGetMode(SeqGrabComponent s, Boolean *previewMode, Boolean *recordMode)
  935. ;
  936.     IF ¬ GENERATINGCFM THEN
  937.         Macro
  938.         _SGGetMode
  939.             dc.w     $2F3C
  940.             dc.w     $0008
  941.             dc.w     $002D
  942.             moveq    #0,d0
  943.             dc.w     $A82A
  944.         EndM
  945.     ELSE
  946.         IMPORT    SGGetMode
  947.     ENDIF
  948.  
  949. ;
  950. ; pascal ComponentResult SGSetDataRef(SeqGrabComponent s, Handle dataRef, OSType dataRefType, long whereFlags)
  951. ;
  952.     IF ¬ GENERATINGCFM THEN
  953.         Macro
  954.         _SGSetDataRef
  955.             dc.w     $2F3C
  956.             dc.w     $000C
  957.             dc.w     $002E
  958.             moveq    #0,d0
  959.             dc.w     $A82A
  960.         EndM
  961.     ELSE
  962.         IMPORT    SGSetDataRef
  963.     ENDIF
  964.  
  965. ;
  966. ; pascal ComponentResult SGGetDataRef(SeqGrabComponent s, Handle *dataRef, OSType *dataRefType, long *whereFlags)
  967. ;
  968.     IF ¬ GENERATINGCFM THEN
  969.         Macro
  970.         _SGGetDataRef
  971.             dc.w     $2F3C
  972.             dc.w     $000C
  973.             dc.w     $002F
  974.             moveq    #0,d0
  975.             dc.w     $A82A
  976.         EndM
  977.     ELSE
  978.         IMPORT    SGGetDataRef
  979.     ENDIF
  980.  
  981. ;
  982. ; pascal ComponentResult SGNewOutput(SeqGrabComponent s, Handle dataRef, OSType dataRefType, long whereFlags, SGOutput *output)
  983. ;
  984.     IF ¬ GENERATINGCFM THEN
  985.         Macro
  986.         _SGNewOutput
  987.             dc.w     $2F3C
  988.             dc.w     $0010
  989.             dc.w     $0030
  990.             moveq    #0,d0
  991.             dc.w     $A82A
  992.         EndM
  993.     ELSE
  994.         IMPORT    SGNewOutput
  995.     ENDIF
  996.  
  997. ;
  998. ; pascal ComponentResult SGDisposeOutput(SeqGrabComponent s, SGOutput output)
  999. ;
  1000.     IF ¬ GENERATINGCFM THEN
  1001.         Macro
  1002.         _SGDisposeOutput
  1003.             dc.w     $2F3C
  1004.             dc.w     $0004
  1005.             dc.w     $0031
  1006.             moveq    #0,d0
  1007.             dc.w     $A82A
  1008.         EndM
  1009.     ELSE
  1010.         IMPORT    SGDisposeOutput
  1011.     ENDIF
  1012.  
  1013. ;
  1014. ; pascal ComponentResult SGSetOutputFlags(SeqGrabComponent s, SGOutput output, long whereFlags)
  1015. ;
  1016.     IF ¬ GENERATINGCFM THEN
  1017.         Macro
  1018.         _SGSetOutputFlags
  1019.             dc.w     $2F3C
  1020.             dc.w     $0008
  1021.             dc.w     $0032
  1022.             moveq    #0,d0
  1023.             dc.w     $A82A
  1024.         EndM
  1025.     ELSE
  1026.         IMPORT    SGSetOutputFlags
  1027.     ENDIF
  1028.  
  1029. ;
  1030. ; pascal ComponentResult SGSetChannelOutput(SeqGrabComponent s, SGChannel c, SGOutput output)
  1031. ;
  1032.     IF ¬ GENERATINGCFM THEN
  1033.         Macro
  1034.         _SGSetChannelOutput
  1035.             dc.w     $2F3C
  1036.             dc.w     $0008
  1037.             dc.w     $0033
  1038.             moveq    #0,d0
  1039.             dc.w     $A82A
  1040.         EndM
  1041.     ELSE
  1042.         IMPORT    SGSetChannelOutput
  1043.     ENDIF
  1044.  
  1045. ;
  1046. ; pascal ComponentResult SGGetDataOutputStorageSpaceRemaining(SeqGrabComponent s, SGOutput output, unsigned long *space)
  1047. ;
  1048.     IF ¬ GENERATINGCFM THEN
  1049.         Macro
  1050.         _SGGetDataOutputStorageSpaceRemaining
  1051.             dc.w     $2F3C
  1052.             dc.w     $0008
  1053.             dc.w     $0034
  1054.             moveq    #0,d0
  1055.             dc.w     $A82A
  1056.         EndM
  1057.     ELSE
  1058.         IMPORT    SGGetDataOutputStorageSpaceRemaining
  1059.     ENDIF
  1060.  
  1061. ;
  1062. ;    calls from Channel to seqGrab
  1063. ;
  1064. ;
  1065. ; pascal ComponentResult SGWriteMovieData(SeqGrabComponent s, SGChannel c, Ptr p, long len, long *offset)
  1066. ;
  1067.     IF ¬ GENERATINGCFM THEN
  1068.         Macro
  1069.         _SGWriteMovieData
  1070.             dc.w     $2F3C
  1071.             dc.w     $0010
  1072.             dc.w     $0100
  1073.             moveq    #0,d0
  1074.             dc.w     $A82A
  1075.         EndM
  1076.     ELSE
  1077.         IMPORT    SGWriteMovieData
  1078.     ENDIF
  1079.  
  1080. ;
  1081. ; pascal ComponentResult SGAddFrameReference(SeqGrabComponent s, SeqGrabFrameInfoPtr frameInfo)
  1082. ;
  1083.     IF ¬ GENERATINGCFM THEN
  1084.         Macro
  1085.         _SGAddFrameReference
  1086.             dc.w     $2F3C
  1087.             dc.w     $0004
  1088.             dc.w     $0101
  1089.             moveq    #0,d0
  1090.             dc.w     $A82A
  1091.         EndM
  1092.     ELSE
  1093.         IMPORT    SGAddFrameReference
  1094.     ENDIF
  1095.  
  1096. ;
  1097. ; pascal ComponentResult SGGetNextFrameReference(SeqGrabComponent s, SeqGrabFrameInfoPtr frameInfo, TimeValue *frameDuration, long *frameNumber)
  1098. ;
  1099.     IF ¬ GENERATINGCFM THEN
  1100.         Macro
  1101.         _SGGetNextFrameReference
  1102.             dc.w     $2F3C
  1103.             dc.w     $000C
  1104.             dc.w     $0102
  1105.             moveq    #0,d0
  1106.             dc.w     $A82A
  1107.         EndM
  1108.     ELSE
  1109.         IMPORT    SGGetNextFrameReference
  1110.     ENDIF
  1111.  
  1112. ;
  1113. ; pascal ComponentResult SGGetTimeBase(SeqGrabComponent s, TimeBase *tb)
  1114. ;
  1115.     IF ¬ GENERATINGCFM THEN
  1116.         Macro
  1117.         _SGGetTimeBase
  1118.             dc.w     $2F3C
  1119.             dc.w     $0004
  1120.             dc.w     $0103
  1121.             moveq    #0,d0
  1122.             dc.w     $A82A
  1123.         EndM
  1124.     ELSE
  1125.         IMPORT    SGGetTimeBase
  1126.     ENDIF
  1127.  
  1128. ;
  1129. ; pascal ComponentResult SGSortDeviceList(SeqGrabComponent s, SGDeviceList list)
  1130. ;
  1131.     IF ¬ GENERATINGCFM THEN
  1132.         Macro
  1133.         _SGSortDeviceList
  1134.             dc.w     $2F3C
  1135.             dc.w     $0004
  1136.             dc.w     $0104
  1137.             moveq    #0,d0
  1138.             dc.w     $A82A
  1139.         EndM
  1140.     ELSE
  1141.         IMPORT    SGSortDeviceList
  1142.     ENDIF
  1143.  
  1144. ;
  1145. ; pascal ComponentResult SGAddMovieData(SeqGrabComponent s, SGChannel c, Ptr p, long len, long *offset, long chRefCon, TimeValue time, short writeType)
  1146. ;
  1147.     IF ¬ GENERATINGCFM THEN
  1148.         Macro
  1149.         _SGAddMovieData
  1150.             dc.w     $2F3C
  1151.             dc.w     $001A
  1152.             dc.w     $0105
  1153.             moveq    #0,d0
  1154.             dc.w     $A82A
  1155.         EndM
  1156.     ELSE
  1157.         IMPORT    SGAddMovieData
  1158.     ENDIF
  1159.  
  1160. ;
  1161. ; pascal ComponentResult SGChangedSource(SeqGrabComponent s, SGChannel c)
  1162. ;
  1163.     IF ¬ GENERATINGCFM THEN
  1164.         Macro
  1165.         _SGChangedSource
  1166.             dc.w     $2F3C
  1167.             dc.w     $0004
  1168.             dc.w     $0106
  1169.             moveq    #0,d0
  1170.             dc.w     $A82A
  1171.         EndM
  1172.     ELSE
  1173.         IMPORT    SGChangedSource
  1174.     ENDIF
  1175.  
  1176. ;** Sequence Grab CHANNEL Component Stuff **
  1177. ;
  1178. ; pascal ComponentResult SGSetChannelUsage(SGChannel c, long usage)
  1179. ;
  1180.     IF ¬ GENERATINGCFM THEN
  1181.         Macro
  1182.         _SGSetChannelUsage
  1183.             dc.w     $2F3C
  1184.             dc.w     $0004
  1185.             dc.w     $0080
  1186.             moveq    #0,d0
  1187.             dc.w     $A82A
  1188.         EndM
  1189.     ELSE
  1190.         IMPORT    SGSetChannelUsage
  1191.     ENDIF
  1192.  
  1193. ;
  1194. ; pascal ComponentResult SGGetChannelUsage(SGChannel c, long *usage)
  1195. ;
  1196.     IF ¬ GENERATINGCFM THEN
  1197.         Macro
  1198.         _SGGetChannelUsage
  1199.             dc.w     $2F3C
  1200.             dc.w     $0004
  1201.             dc.w     $0081
  1202.             moveq    #0,d0
  1203.             dc.w     $A82A
  1204.         EndM
  1205.     ELSE
  1206.         IMPORT    SGGetChannelUsage
  1207.     ENDIF
  1208.  
  1209. ;
  1210. ; pascal ComponentResult SGSetChannelBounds(SGChannel c, const Rect *bounds)
  1211. ;
  1212.     IF ¬ GENERATINGCFM THEN
  1213.         Macro
  1214.         _SGSetChannelBounds
  1215.             dc.w     $2F3C
  1216.             dc.w     $0004
  1217.             dc.w     $0082
  1218.             moveq    #0,d0
  1219.             dc.w     $A82A
  1220.         EndM
  1221.     ELSE
  1222.         IMPORT    SGSetChannelBounds
  1223.     ENDIF
  1224.  
  1225. ;
  1226. ; pascal ComponentResult SGGetChannelBounds(SGChannel c, Rect *bounds)
  1227. ;
  1228.     IF ¬ GENERATINGCFM THEN
  1229.         Macro
  1230.         _SGGetChannelBounds
  1231.             dc.w     $2F3C
  1232.             dc.w     $0004
  1233.             dc.w     $0083
  1234.             moveq    #0,d0
  1235.             dc.w     $A82A
  1236.         EndM
  1237.     ELSE
  1238.         IMPORT    SGGetChannelBounds
  1239.     ENDIF
  1240.  
  1241. ;
  1242. ; pascal ComponentResult SGSetChannelVolume(SGChannel c, short volume)
  1243. ;
  1244.     IF ¬ GENERATINGCFM THEN
  1245.         Macro
  1246.         _SGSetChannelVolume
  1247.             dc.w     $2F3C
  1248.             dc.w     $0002
  1249.             dc.w     $0084
  1250.             moveq    #0,d0
  1251.             dc.w     $A82A
  1252.         EndM
  1253.     ELSE
  1254.         IMPORT    SGSetChannelVolume
  1255.     ENDIF
  1256.  
  1257. ;
  1258. ; pascal ComponentResult SGGetChannelVolume(SGChannel c, short *volume)
  1259. ;
  1260.     IF ¬ GENERATINGCFM THEN
  1261.         Macro
  1262.         _SGGetChannelVolume
  1263.             dc.w     $2F3C
  1264.             dc.w     $0004
  1265.             dc.w     $0085
  1266.             moveq    #0,d0
  1267.             dc.w     $A82A
  1268.         EndM
  1269.     ELSE
  1270.         IMPORT    SGGetChannelVolume
  1271.     ENDIF
  1272.  
  1273. ;
  1274. ; pascal ComponentResult SGGetChannelInfo(SGChannel c, long *channelInfo)
  1275. ;
  1276.     IF ¬ GENERATINGCFM THEN
  1277.         Macro
  1278.         _SGGetChannelInfo
  1279.             dc.w     $2F3C
  1280.             dc.w     $0004
  1281.             dc.w     $0086
  1282.             moveq    #0,d0
  1283.             dc.w     $A82A
  1284.         EndM
  1285.     ELSE
  1286.         IMPORT    SGGetChannelInfo
  1287.     ENDIF
  1288.  
  1289. ;
  1290. ; pascal ComponentResult SGSetChannelPlayFlags(SGChannel c, long playFlags)
  1291. ;
  1292.     IF ¬ GENERATINGCFM THEN
  1293.         Macro
  1294.         _SGSetChannelPlayFlags
  1295.             dc.w     $2F3C
  1296.             dc.w     $0004
  1297.             dc.w     $0087
  1298.             moveq    #0,d0
  1299.             dc.w     $A82A
  1300.         EndM
  1301.     ELSE
  1302.         IMPORT    SGSetChannelPlayFlags
  1303.     ENDIF
  1304.  
  1305. ;
  1306. ; pascal ComponentResult SGGetChannelPlayFlags(SGChannel c, long *playFlags)
  1307. ;
  1308.     IF ¬ GENERATINGCFM THEN
  1309.         Macro
  1310.         _SGGetChannelPlayFlags
  1311.             dc.w     $2F3C
  1312.             dc.w     $0004
  1313.             dc.w     $0088
  1314.             moveq    #0,d0
  1315.             dc.w     $A82A
  1316.         EndM
  1317.     ELSE
  1318.         IMPORT    SGGetChannelPlayFlags
  1319.     ENDIF
  1320.  
  1321. ;
  1322. ; pascal ComponentResult SGSetChannelMaxFrames(SGChannel c, long frameCount)
  1323. ;
  1324.     IF ¬ GENERATINGCFM THEN
  1325.         Macro
  1326.         _SGSetChannelMaxFrames
  1327.             dc.w     $2F3C
  1328.             dc.w     $0004
  1329.             dc.w     $0089
  1330.             moveq    #0,d0
  1331.             dc.w     $A82A
  1332.         EndM
  1333.     ELSE
  1334.         IMPORT    SGSetChannelMaxFrames
  1335.     ENDIF
  1336.  
  1337. ;
  1338. ; pascal ComponentResult SGGetChannelMaxFrames(SGChannel c, long *frameCount)
  1339. ;
  1340.     IF ¬ GENERATINGCFM THEN
  1341.         Macro
  1342.         _SGGetChannelMaxFrames
  1343.             dc.w     $2F3C
  1344.             dc.w     $0004
  1345.             dc.w     $008A
  1346.             moveq    #0,d0
  1347.             dc.w     $A82A
  1348.         EndM
  1349.     ELSE
  1350.         IMPORT    SGGetChannelMaxFrames
  1351.     ENDIF
  1352.  
  1353. ;
  1354. ; pascal ComponentResult SGSetChannelRefCon(SGChannel c, long refCon)
  1355. ;
  1356.     IF ¬ GENERATINGCFM THEN
  1357.         Macro
  1358.         _SGSetChannelRefCon
  1359.             dc.w     $2F3C
  1360.             dc.w     $0004
  1361.             dc.w     $008B
  1362.             moveq    #0,d0
  1363.             dc.w     $A82A
  1364.         EndM
  1365.     ELSE
  1366.         IMPORT    SGSetChannelRefCon
  1367.     ENDIF
  1368.  
  1369. ;
  1370. ; pascal ComponentResult SGSetChannelClip(SGChannel c, RgnHandle theClip)
  1371. ;
  1372.     IF ¬ GENERATINGCFM THEN
  1373.         Macro
  1374.         _SGSetChannelClip
  1375.             dc.w     $2F3C
  1376.             dc.w     $0004
  1377.             dc.w     $008C
  1378.             moveq    #0,d0
  1379.             dc.w     $A82A
  1380.         EndM
  1381.     ELSE
  1382.         IMPORT    SGSetChannelClip
  1383.     ENDIF
  1384.  
  1385. ;
  1386. ; pascal ComponentResult SGGetChannelClip(SGChannel c, RgnHandle *theClip)
  1387. ;
  1388.     IF ¬ GENERATINGCFM THEN
  1389.         Macro
  1390.         _SGGetChannelClip
  1391.             dc.w     $2F3C
  1392.             dc.w     $0004
  1393.             dc.w     $008D
  1394.             moveq    #0,d0
  1395.             dc.w     $A82A
  1396.         EndM
  1397.     ELSE
  1398.         IMPORT    SGGetChannelClip
  1399.     ENDIF
  1400.  
  1401. ;
  1402. ; pascal ComponentResult SGGetChannelSampleDescription(SGChannel c, Handle sampleDesc)
  1403. ;
  1404.     IF ¬ GENERATINGCFM THEN
  1405.         Macro
  1406.         _SGGetChannelSampleDescription
  1407.             dc.w     $2F3C
  1408.             dc.w     $0004
  1409.             dc.w     $008E
  1410.             moveq    #0,d0
  1411.             dc.w     $A82A
  1412.         EndM
  1413.     ELSE
  1414.         IMPORT    SGGetChannelSampleDescription
  1415.     ENDIF
  1416.  
  1417. ;
  1418. ; pascal ComponentResult SGGetChannelDeviceList(SGChannel c, long selectionFlags, SGDeviceList *list)
  1419. ;
  1420.     IF ¬ GENERATINGCFM THEN
  1421.         Macro
  1422.         _SGGetChannelDeviceList
  1423.             dc.w     $2F3C
  1424.             dc.w     $0008
  1425.             dc.w     $008F
  1426.             moveq    #0,d0
  1427.             dc.w     $A82A
  1428.         EndM
  1429.     ELSE
  1430.         IMPORT    SGGetChannelDeviceList
  1431.     ENDIF
  1432.  
  1433. ;
  1434. ; pascal ComponentResult SGSetChannelDevice(SGChannel c, StringPtr name)
  1435. ;
  1436.     IF ¬ GENERATINGCFM THEN
  1437.         Macro
  1438.         _SGSetChannelDevice
  1439.             dc.w     $2F3C
  1440.             dc.w     $0004
  1441.             dc.w     $0090
  1442.             moveq    #0,d0
  1443.             dc.w     $A82A
  1444.         EndM
  1445.     ELSE
  1446.         IMPORT    SGSetChannelDevice
  1447.     ENDIF
  1448.  
  1449. ;
  1450. ; pascal ComponentResult SGSetChannelMatrix(SGChannel c, const MatrixRecord *m)
  1451. ;
  1452.     IF ¬ GENERATINGCFM THEN
  1453.         Macro
  1454.         _SGSetChannelMatrix
  1455.             dc.w     $2F3C
  1456.             dc.w     $0004
  1457.             dc.w     $0091
  1458.             moveq    #0,d0
  1459.             dc.w     $A82A
  1460.         EndM
  1461.     ELSE
  1462.         IMPORT    SGSetChannelMatrix
  1463.     ENDIF
  1464.  
  1465. ;
  1466. ; pascal ComponentResult SGGetChannelMatrix(SGChannel c, MatrixRecord *m)
  1467. ;
  1468.     IF ¬ GENERATINGCFM THEN
  1469.         Macro
  1470.         _SGGetChannelMatrix
  1471.             dc.w     $2F3C
  1472.             dc.w     $0004
  1473.             dc.w     $0092
  1474.             moveq    #0,d0
  1475.             dc.w     $A82A
  1476.         EndM
  1477.     ELSE
  1478.         IMPORT    SGGetChannelMatrix
  1479.     ENDIF
  1480.  
  1481. ;
  1482. ; pascal ComponentResult SGGetChannelTimeScale(SGChannel c, TimeScale *scale)
  1483. ;
  1484.     IF ¬ GENERATINGCFM THEN
  1485.         Macro
  1486.         _SGGetChannelTimeScale
  1487.             dc.w     $2F3C
  1488.             dc.w     $0004
  1489.             dc.w     $0093
  1490.             moveq    #0,d0
  1491.             dc.w     $A82A
  1492.         EndM
  1493.     ELSE
  1494.         IMPORT    SGGetChannelTimeScale
  1495.     ENDIF
  1496.  
  1497. ;
  1498. ; pascal ComponentResult SGChannelPutPicture(SGChannel c)
  1499. ;
  1500.     IF ¬ GENERATINGCFM THEN
  1501.         Macro
  1502.         _SGChannelPutPicture
  1503.             dc.w     $2F3C
  1504.             dc.w     $0000
  1505.             dc.w     $0094
  1506.             moveq    #0,d0
  1507.             dc.w     $A82A
  1508.         EndM
  1509.     ELSE
  1510.         IMPORT    SGChannelPutPicture
  1511.     ENDIF
  1512.  
  1513. ;
  1514. ; pascal ComponentResult SGChannelSetRequestedDataRate(SGChannel c, long bytesPerSecond)
  1515. ;
  1516.     IF ¬ GENERATINGCFM THEN
  1517.         Macro
  1518.         _SGChannelSetRequestedDataRate
  1519.             dc.w     $2F3C
  1520.             dc.w     $0004
  1521.             dc.w     $0095
  1522.             moveq    #0,d0
  1523.             dc.w     $A82A
  1524.         EndM
  1525.     ELSE
  1526.         IMPORT    SGChannelSetRequestedDataRate
  1527.     ENDIF
  1528.  
  1529. ;
  1530. ; pascal ComponentResult SGChannelGetRequestedDataRate(SGChannel c, long *bytesPerSecond)
  1531. ;
  1532.     IF ¬ GENERATINGCFM THEN
  1533.         Macro
  1534.         _SGChannelGetRequestedDataRate
  1535.             dc.w     $2F3C
  1536.             dc.w     $0004
  1537.             dc.w     $0096
  1538.             moveq    #0,d0
  1539.             dc.w     $A82A
  1540.         EndM
  1541.     ELSE
  1542.         IMPORT    SGChannelGetRequestedDataRate
  1543.     ENDIF
  1544.  
  1545. ;
  1546. ; pascal ComponentResult SGChannelSetDataSourceName(SGChannel c, ConstStr255Param name, ScriptCode scriptTag)
  1547. ;
  1548.     IF ¬ GENERATINGCFM THEN
  1549.         Macro
  1550.         _SGChannelSetDataSourceName
  1551.             dc.w     $2F3C
  1552.             dc.w     $0006
  1553.             dc.w     $0097
  1554.             moveq    #0,d0
  1555.             dc.w     $A82A
  1556.         EndM
  1557.     ELSE
  1558.         IMPORT    SGChannelSetDataSourceName
  1559.     ENDIF
  1560.  
  1561. ;
  1562. ; pascal ComponentResult SGChannelGetDataSourceName(SGChannel c, Str255 name, ScriptCode *scriptTag)
  1563. ;
  1564.     IF ¬ GENERATINGCFM THEN
  1565.         Macro
  1566.         _SGChannelGetDataSourceName
  1567.             dc.w     $2F3C
  1568.             dc.w     $0008
  1569.             dc.w     $0098
  1570.             moveq    #0,d0
  1571.             dc.w     $A82A
  1572.         EndM
  1573.     ELSE
  1574.         IMPORT    SGChannelGetDataSourceName
  1575.     ENDIF
  1576.  
  1577. ;
  1578. ;    calls from seqGrab to Channel
  1579. ;
  1580. ;
  1581. ; pascal ComponentResult SGInitChannel(SGChannel c, SeqGrabComponent owner)
  1582. ;
  1583.     IF ¬ GENERATINGCFM THEN
  1584.         Macro
  1585.         _SGInitChannel
  1586.             dc.w     $2F3C
  1587.             dc.w     $0004
  1588.             dc.w     $0180
  1589.             moveq    #0,d0
  1590.             dc.w     $A82A
  1591.         EndM
  1592.     ELSE
  1593.         IMPORT    SGInitChannel
  1594.     ENDIF
  1595.  
  1596. ;
  1597. ; pascal ComponentResult SGWriteSamples(SGChannel c, Movie m, AliasHandle theFile)
  1598. ;
  1599.     IF ¬ GENERATINGCFM THEN
  1600.         Macro
  1601.         _SGWriteSamples
  1602.             dc.w     $2F3C
  1603.             dc.w     $0008
  1604.             dc.w     $0181
  1605.             moveq    #0,d0
  1606.             dc.w     $A82A
  1607.         EndM
  1608.     ELSE
  1609.         IMPORT    SGWriteSamples
  1610.     ENDIF
  1611.  
  1612. ;
  1613. ; pascal ComponentResult SGGetDataRate(SGChannel c, long *bytesPerSecond)
  1614. ;
  1615.     IF ¬ GENERATINGCFM THEN
  1616.         Macro
  1617.         _SGGetDataRate
  1618.             dc.w     $2F3C
  1619.             dc.w     $0004
  1620.             dc.w     $0182
  1621.             moveq    #0,d0
  1622.             dc.w     $A82A
  1623.         EndM
  1624.     ELSE
  1625.         IMPORT    SGGetDataRate
  1626.     ENDIF
  1627.  
  1628. ;
  1629. ; pascal ComponentResult SGAlignChannelRect(SGChannel c, Rect *r)
  1630. ;
  1631.     IF ¬ GENERATINGCFM THEN
  1632.         Macro
  1633.         _SGAlignChannelRect
  1634.             dc.w     $2F3C
  1635.             dc.w     $0004
  1636.             dc.w     $0183
  1637.             moveq    #0,d0
  1638.             dc.w     $A82A
  1639.         EndM
  1640.     ELSE
  1641.         IMPORT    SGAlignChannelRect
  1642.     ENDIF
  1643.  
  1644. ;
  1645. ;    Dorky dialog panel calls
  1646. ;
  1647. ;
  1648. ; pascal ComponentResult SGPanelGetDitl(SeqGrabComponent s, Handle *ditl)
  1649. ;
  1650.     IF ¬ GENERATINGCFM THEN
  1651.         Macro
  1652.         _SGPanelGetDitl
  1653.             dc.w     $2F3C
  1654.             dc.w     $0004
  1655.             dc.w     $0200
  1656.             moveq    #0,d0
  1657.             dc.w     $A82A
  1658.         EndM
  1659.     ELSE
  1660.         IMPORT    SGPanelGetDitl
  1661.     ENDIF
  1662.  
  1663. ;
  1664. ; pascal ComponentResult SGPanelGetTitle(SeqGrabComponent s, Str255 title)
  1665. ;
  1666.     IF ¬ GENERATINGCFM THEN
  1667.         Macro
  1668.         _SGPanelGetTitle
  1669.             dc.w     $2F3C
  1670.             dc.w     $0004
  1671.             dc.w     $0201
  1672.             moveq    #0,d0
  1673.             dc.w     $A82A
  1674.         EndM
  1675.     ELSE
  1676.         IMPORT    SGPanelGetTitle
  1677.     ENDIF
  1678.  
  1679. ;
  1680. ; pascal ComponentResult SGPanelCanRun(SeqGrabComponent s, SGChannel c)
  1681. ;
  1682.     IF ¬ GENERATINGCFM THEN
  1683.         Macro
  1684.         _SGPanelCanRun
  1685.             dc.w     $2F3C
  1686.             dc.w     $0004
  1687.             dc.w     $0202
  1688.             moveq    #0,d0
  1689.             dc.w     $A82A
  1690.         EndM
  1691.     ELSE
  1692.         IMPORT    SGPanelCanRun
  1693.     ENDIF
  1694.  
  1695. ;
  1696. ; pascal ComponentResult SGPanelInstall(SeqGrabComponent s, SGChannel c, DialogPtr d, short itemOffset)
  1697. ;
  1698.     IF ¬ GENERATINGCFM THEN
  1699.         Macro
  1700.         _SGPanelInstall
  1701.             dc.w     $2F3C
  1702.             dc.w     $000A
  1703.             dc.w     $0203
  1704.             moveq    #0,d0
  1705.             dc.w     $A82A
  1706.         EndM
  1707.     ELSE
  1708.         IMPORT    SGPanelInstall
  1709.     ENDIF
  1710.  
  1711. ;
  1712. ; pascal ComponentResult SGPanelEvent(SeqGrabComponent s, SGChannel c, DialogPtr d, short itemOffset, EventRecord *theEvent, short *itemHit, Boolean *handled)
  1713. ;
  1714.     IF ¬ GENERATINGCFM THEN
  1715.         Macro
  1716.         _SGPanelEvent
  1717.             dc.w     $2F3C
  1718.             dc.w     $0016
  1719.             dc.w     $0204
  1720.             moveq    #0,d0
  1721.             dc.w     $A82A
  1722.         EndM
  1723.     ELSE
  1724.         IMPORT    SGPanelEvent
  1725.     ENDIF
  1726.  
  1727. ;
  1728. ; pascal ComponentResult SGPanelItem(SeqGrabComponent s, SGChannel c, DialogPtr d, short itemOffset, short itemNum)
  1729. ;
  1730.     IF ¬ GENERATINGCFM THEN
  1731.         Macro
  1732.         _SGPanelItem
  1733.             dc.w     $2F3C
  1734.             dc.w     $000C
  1735.             dc.w     $0205
  1736.             moveq    #0,d0
  1737.             dc.w     $A82A
  1738.         EndM
  1739.     ELSE
  1740.         IMPORT    SGPanelItem
  1741.     ENDIF
  1742.  
  1743. ;
  1744. ; pascal ComponentResult SGPanelRemove(SeqGrabComponent s, SGChannel c, DialogPtr d, short itemOffset)
  1745. ;
  1746.     IF ¬ GENERATINGCFM THEN
  1747.         Macro
  1748.         _SGPanelRemove
  1749.             dc.w     $2F3C
  1750.             dc.w     $000A
  1751.             dc.w     $0206
  1752.             moveq    #0,d0
  1753.             dc.w     $A82A
  1754.         EndM
  1755.     ELSE
  1756.         IMPORT    SGPanelRemove
  1757.     ENDIF
  1758.  
  1759. ;
  1760. ; pascal ComponentResult SGPanelSetGrabber(SeqGrabComponent s, SeqGrabComponent sg)
  1761. ;
  1762.     IF ¬ GENERATINGCFM THEN
  1763.         Macro
  1764.         _SGPanelSetGrabber
  1765.             dc.w     $2F3C
  1766.             dc.w     $0004
  1767.             dc.w     $0207
  1768.             moveq    #0,d0
  1769.             dc.w     $A82A
  1770.         EndM
  1771.     ELSE
  1772.         IMPORT    SGPanelSetGrabber
  1773.     ENDIF
  1774.  
  1775. ;
  1776. ; pascal ComponentResult SGPanelSetResFile(SeqGrabComponent s, short resRef)
  1777. ;
  1778.     IF ¬ GENERATINGCFM THEN
  1779.         Macro
  1780.         _SGPanelSetResFile
  1781.             dc.w     $2F3C
  1782.             dc.w     $0002
  1783.             dc.w     $0208
  1784.             moveq    #0,d0
  1785.             dc.w     $A82A
  1786.         EndM
  1787.     ELSE
  1788.         IMPORT    SGPanelSetResFile
  1789.     ENDIF
  1790.  
  1791. ;
  1792. ; pascal ComponentResult SGPanelGetSettings(SeqGrabComponent s, SGChannel c, UserData *ud, long flags)
  1793. ;
  1794.     IF ¬ GENERATINGCFM THEN
  1795.         Macro
  1796.         _SGPanelGetSettings
  1797.             dc.w     $2F3C
  1798.             dc.w     $000C
  1799.             dc.w     $0209
  1800.             moveq    #0,d0
  1801.             dc.w     $A82A
  1802.         EndM
  1803.     ELSE
  1804.         IMPORT    SGPanelGetSettings
  1805.     ENDIF
  1806.  
  1807. ;
  1808. ; pascal ComponentResult SGPanelSetSettings(SeqGrabComponent s, SGChannel c, UserData ud, long flags)
  1809. ;
  1810.     IF ¬ GENERATINGCFM THEN
  1811.         Macro
  1812.         _SGPanelSetSettings
  1813.             dc.w     $2F3C
  1814.             dc.w     $000C
  1815.             dc.w     $020A
  1816.             moveq    #0,d0
  1817.             dc.w     $A82A
  1818.         EndM
  1819.     ELSE
  1820.         IMPORT    SGPanelSetSettings
  1821.     ENDIF
  1822.  
  1823. ;
  1824. ; pascal ComponentResult SGPanelValidateInput(SeqGrabComponent s, Boolean *ok)
  1825. ;
  1826.     IF ¬ GENERATINGCFM THEN
  1827.         Macro
  1828.         _SGPanelValidateInput
  1829.             dc.w     $2F3C
  1830.             dc.w     $0004
  1831.             dc.w     $020B
  1832.             moveq    #0,d0
  1833.             dc.w     $A82A
  1834.         EndM
  1835.     ELSE
  1836.         IMPORT    SGPanelValidateInput
  1837.     ENDIF
  1838.  
  1839. ;
  1840. ; pascal ComponentResult SGPanelSetEventFilter(SeqGrabComponent s, SGModalFilterUPP proc, long refCon)
  1841. ;
  1842.     IF ¬ GENERATINGCFM THEN
  1843.         Macro
  1844.         _SGPanelSetEventFilter
  1845.             dc.w     $2F3C
  1846.             dc.w     $0008
  1847.             dc.w     $020C
  1848.             moveq    #0,d0
  1849.             dc.w     $A82A
  1850.         EndM
  1851.     ELSE
  1852.         IMPORT    SGPanelSetEventFilter
  1853.     ENDIF
  1854.  
  1855. ;** Sequence Grab VIDEO CHANNEL Component Stuff **
  1856. ;
  1857. ;    Video stuff
  1858. ;
  1859. SGCompressInfo             RECORD    0
  1860. buffer                     ds.l    1
  1861. bufferSize                 ds.l    1
  1862. similarity                 ds.b    1
  1863. reserved                 ds.b    1
  1864. sizeof                     EQU    *
  1865.                         ENDR
  1866.  
  1867. ; typedef struct SGCompressInfo  SGCompressInfo
  1868. VideoBottles             RECORD    0
  1869. procCount                 ds.w    1
  1870. grabProc                 ds.l    1
  1871. grabCompleteProc         ds.l    1
  1872. displayProc                 ds.l    1
  1873. compressProc             ds.l    1
  1874. compressCompleteProc     ds.l    1
  1875. addFrameProc             ds.l    1
  1876. transferFrameProc         ds.l    1
  1877. grabCompressCompleteProc ds.l    1
  1878. displayCompressProc         ds.l    1
  1879. sizeof                     EQU    *
  1880.                         ENDR
  1881.  
  1882. ; typedef struct VideoBottles  VideoBottles
  1883. ;
  1884. ; pascal ComponentResult SGGetSrcVideoBounds(SGChannel c, Rect *r)
  1885. ;
  1886.     IF ¬ GENERATINGCFM THEN
  1887.         Macro
  1888.         _SGGetSrcVideoBounds
  1889.             dc.w     $2F3C
  1890.             dc.w     $0004
  1891.             dc.w     $0100
  1892.             moveq    #0,d0
  1893.             dc.w     $A82A
  1894.         EndM
  1895.     ELSE
  1896.         IMPORT    SGGetSrcVideoBounds
  1897.     ENDIF
  1898.  
  1899. ;
  1900. ; pascal ComponentResult SGSetVideoRect(SGChannel c, const Rect *r)
  1901. ;
  1902.     IF ¬ GENERATINGCFM THEN
  1903.         Macro
  1904.         _SGSetVideoRect
  1905.             dc.w     $2F3C
  1906.             dc.w     $0004
  1907.             dc.w     $0101
  1908.             moveq    #0,d0
  1909.             dc.w     $A82A
  1910.         EndM
  1911.     ELSE
  1912.         IMPORT    SGSetVideoRect
  1913.     ENDIF
  1914.  
  1915. ;
  1916. ; pascal ComponentResult SGGetVideoRect(SGChannel c, Rect *r)
  1917. ;
  1918.     IF ¬ GENERATINGCFM THEN
  1919.         Macro
  1920.         _SGGetVideoRect
  1921.             dc.w     $2F3C
  1922.             dc.w     $0004
  1923.             dc.w     $0102
  1924.             moveq    #0,d0
  1925.             dc.w     $A82A
  1926.         EndM
  1927.     ELSE
  1928.         IMPORT    SGGetVideoRect
  1929.     ENDIF
  1930.  
  1931. ;
  1932. ; pascal ComponentResult SGGetVideoCompressorType(SGChannel c, OSType *compressorType)
  1933. ;
  1934.     IF ¬ GENERATINGCFM THEN
  1935.         Macro
  1936.         _SGGetVideoCompressorType
  1937.             dc.w     $2F3C
  1938.             dc.w     $0004
  1939.             dc.w     $0103
  1940.             moveq    #0,d0
  1941.             dc.w     $A82A
  1942.         EndM
  1943.     ELSE
  1944.         IMPORT    SGGetVideoCompressorType
  1945.     ENDIF
  1946.  
  1947. ;
  1948. ; pascal ComponentResult SGSetVideoCompressorType(SGChannel c, OSType compressorType)
  1949. ;
  1950.     IF ¬ GENERATINGCFM THEN
  1951.         Macro
  1952.         _SGSetVideoCompressorType
  1953.             dc.w     $2F3C
  1954.             dc.w     $0004
  1955.             dc.w     $0104
  1956.             moveq    #0,d0
  1957.             dc.w     $A82A
  1958.         EndM
  1959.     ELSE
  1960.         IMPORT    SGSetVideoCompressorType
  1961.     ENDIF
  1962.  
  1963. ;
  1964. ; pascal ComponentResult SGSetVideoCompressor(SGChannel c, short depth, CompressorComponent compressor, CodecQ spatialQuality, CodecQ temporalQuality, long keyFrameRate)
  1965. ;
  1966.     IF ¬ GENERATINGCFM THEN
  1967.         Macro
  1968.         _SGSetVideoCompressor
  1969.             dc.w     $2F3C
  1970.             dc.w     $0012
  1971.             dc.w     $0105
  1972.             moveq    #0,d0
  1973.             dc.w     $A82A
  1974.         EndM
  1975.     ELSE
  1976.         IMPORT    SGSetVideoCompressor
  1977.     ENDIF
  1978.  
  1979. ;
  1980. ; pascal ComponentResult SGGetVideoCompressor(SGChannel c, short *depth, CompressorComponent *compressor, CodecQ *spatialQuality, CodecQ *temporalQuality, long *keyFrameRate)
  1981. ;
  1982.     IF ¬ GENERATINGCFM THEN
  1983.         Macro
  1984.         _SGGetVideoCompressor
  1985.             dc.w     $2F3C
  1986.             dc.w     $0014
  1987.             dc.w     $0106
  1988.             moveq    #0,d0
  1989.             dc.w     $A82A
  1990.         EndM
  1991.     ELSE
  1992.         IMPORT    SGGetVideoCompressor
  1993.     ENDIF
  1994.  
  1995. ;
  1996. ; pascal ComponentInstance SGGetVideoDigitizerComponent(SGChannel c)
  1997. ;
  1998.     IF ¬ GENERATINGCFM THEN
  1999.         Macro
  2000.         _SGGetVideoDigitizerComponent
  2001.             dc.w     $2F3C
  2002.             dc.w     $0000
  2003.             dc.w     $0107
  2004.             moveq    #0,d0
  2005.             dc.w     $A82A
  2006.         EndM
  2007.     ELSE
  2008.         IMPORT    SGGetVideoDigitizerComponent
  2009.     ENDIF
  2010.  
  2011. ;
  2012. ; pascal ComponentResult SGSetVideoDigitizerComponent(SGChannel c, ComponentInstance vdig)
  2013. ;
  2014.     IF ¬ GENERATINGCFM THEN
  2015.         Macro
  2016.         _SGSetVideoDigitizerComponent
  2017.             dc.w     $2F3C
  2018.             dc.w     $0004
  2019.             dc.w     $0108
  2020.             moveq    #0,d0
  2021.             dc.w     $A82A
  2022.         EndM
  2023.     ELSE
  2024.         IMPORT    SGSetVideoDigitizerComponent
  2025.     ENDIF
  2026.  
  2027. ;
  2028. ; pascal ComponentResult SGVideoDigitizerChanged(SGChannel c)
  2029. ;
  2030.     IF ¬ GENERATINGCFM THEN
  2031.         Macro
  2032.         _SGVideoDigitizerChanged
  2033.             dc.w     $2F3C
  2034.             dc.w     $0000
  2035.             dc.w     $0109
  2036.             moveq    #0,d0
  2037.             dc.w     $A82A
  2038.         EndM
  2039.     ELSE
  2040.         IMPORT    SGVideoDigitizerChanged
  2041.     ENDIF
  2042.  
  2043. ;
  2044. ; pascal ComponentResult SGSetVideoBottlenecks(SGChannel c, VideoBottles *vb)
  2045. ;
  2046.     IF ¬ GENERATINGCFM THEN
  2047.         Macro
  2048.         _SGSetVideoBottlenecks
  2049.             dc.w     $2F3C
  2050.             dc.w     $0004
  2051.             dc.w     $010A
  2052.             moveq    #0,d0
  2053.             dc.w     $A82A
  2054.         EndM
  2055.     ELSE
  2056.         IMPORT    SGSetVideoBottlenecks
  2057.     ENDIF
  2058.  
  2059. ;
  2060. ; pascal ComponentResult SGGetVideoBottlenecks(SGChannel c, VideoBottles *vb)
  2061. ;
  2062.     IF ¬ GENERATINGCFM THEN
  2063.         Macro
  2064.         _SGGetVideoBottlenecks
  2065.             dc.w     $2F3C
  2066.             dc.w     $0004
  2067.             dc.w     $010B
  2068.             moveq    #0,d0
  2069.             dc.w     $A82A
  2070.         EndM
  2071.     ELSE
  2072.         IMPORT    SGGetVideoBottlenecks
  2073.     ENDIF
  2074.  
  2075. ;
  2076. ; pascal ComponentResult SGGrabFrame(SGChannel c, short bufferNum)
  2077. ;
  2078.     IF ¬ GENERATINGCFM THEN
  2079.         Macro
  2080.         _SGGrabFrame
  2081.             dc.w     $2F3C
  2082.             dc.w     $0002
  2083.             dc.w     $010C
  2084.             moveq    #0,d0
  2085.             dc.w     $A82A
  2086.         EndM
  2087.     ELSE
  2088.         IMPORT    SGGrabFrame
  2089.     ENDIF
  2090.  
  2091. ;
  2092. ; pascal ComponentResult SGGrabFrameComplete(SGChannel c, short bufferNum, Boolean *done)
  2093. ;
  2094.     IF ¬ GENERATINGCFM THEN
  2095.         Macro
  2096.         _SGGrabFrameComplete
  2097.             dc.w     $2F3C
  2098.             dc.w     $0006
  2099.             dc.w     $010D
  2100.             moveq    #0,d0
  2101.             dc.w     $A82A
  2102.         EndM
  2103.     ELSE
  2104.         IMPORT    SGGrabFrameComplete
  2105.     ENDIF
  2106.  
  2107. ;
  2108. ; pascal ComponentResult SGDisplayFrame(SGChannel c, short bufferNum, const MatrixRecord *mp, RgnHandle clipRgn)
  2109. ;
  2110.     IF ¬ GENERATINGCFM THEN
  2111.         Macro
  2112.         _SGDisplayFrame
  2113.             dc.w     $2F3C
  2114.             dc.w     $000A
  2115.             dc.w     $010E
  2116.             moveq    #0,d0
  2117.             dc.w     $A82A
  2118.         EndM
  2119.     ELSE
  2120.         IMPORT    SGDisplayFrame
  2121.     ENDIF
  2122.  
  2123. ;
  2124. ; pascal ComponentResult SGCompressFrame(SGChannel c, short bufferNum)
  2125. ;
  2126.     IF ¬ GENERATINGCFM THEN
  2127.         Macro
  2128.         _SGCompressFrame
  2129.             dc.w     $2F3C
  2130.             dc.w     $0002
  2131.             dc.w     $010F
  2132.             moveq    #0,d0
  2133.             dc.w     $A82A
  2134.         EndM
  2135.     ELSE
  2136.         IMPORT    SGCompressFrame
  2137.     ENDIF
  2138.  
  2139. ;
  2140. ; pascal ComponentResult SGCompressFrameComplete(SGChannel c, short bufferNum, Boolean *done, SGCompressInfo *ci)
  2141. ;
  2142.     IF ¬ GENERATINGCFM THEN
  2143.         Macro
  2144.         _SGCompressFrameComplete
  2145.             dc.w     $2F3C
  2146.             dc.w     $000A
  2147.             dc.w     $0110
  2148.             moveq    #0,d0
  2149.             dc.w     $A82A
  2150.         EndM
  2151.     ELSE
  2152.         IMPORT    SGCompressFrameComplete
  2153.     ENDIF
  2154.  
  2155. ;
  2156. ; pascal ComponentResult SGAddFrame(SGChannel c, short bufferNum, TimeValue atTime, TimeScale scale, const SGCompressInfo *ci)
  2157. ;
  2158.     IF ¬ GENERATINGCFM THEN
  2159.         Macro
  2160.         _SGAddFrame
  2161.             dc.w     $2F3C
  2162.             dc.w     $000E
  2163.             dc.w     $0111
  2164.             moveq    #0,d0
  2165.             dc.w     $A82A
  2166.         EndM
  2167.     ELSE
  2168.         IMPORT    SGAddFrame
  2169.     ENDIF
  2170.  
  2171. ;
  2172. ; pascal ComponentResult SGTransferFrameForCompress(SGChannel c, short bufferNum, const MatrixRecord *mp, RgnHandle clipRgn)
  2173. ;
  2174.     IF ¬ GENERATINGCFM THEN
  2175.         Macro
  2176.         _SGTransferFrameForCompress
  2177.             dc.w     $2F3C
  2178.             dc.w     $000A
  2179.             dc.w     $0112
  2180.             moveq    #0,d0
  2181.             dc.w     $A82A
  2182.         EndM
  2183.     ELSE
  2184.         IMPORT    SGTransferFrameForCompress
  2185.     ENDIF
  2186.  
  2187. ;
  2188. ; pascal ComponentResult SGSetCompressBuffer(SGChannel c, short depth, const Rect *compressSize)
  2189. ;
  2190.     IF ¬ GENERATINGCFM THEN
  2191.         Macro
  2192.         _SGSetCompressBuffer
  2193.             dc.w     $2F3C
  2194.             dc.w     $0006
  2195.             dc.w     $0113
  2196.             moveq    #0,d0
  2197.             dc.w     $A82A
  2198.         EndM
  2199.     ELSE
  2200.         IMPORT    SGSetCompressBuffer
  2201.     ENDIF
  2202.  
  2203. ;
  2204. ; pascal ComponentResult SGGetCompressBuffer(SGChannel c, short *depth, Rect *compressSize)
  2205. ;
  2206.     IF ¬ GENERATINGCFM THEN
  2207.         Macro
  2208.         _SGGetCompressBuffer
  2209.             dc.w     $2F3C
  2210.             dc.w     $0008
  2211.             dc.w     $0114
  2212.             moveq    #0,d0
  2213.             dc.w     $A82A
  2214.         EndM
  2215.     ELSE
  2216.         IMPORT    SGGetCompressBuffer
  2217.     ENDIF
  2218.  
  2219. ;
  2220. ; pascal ComponentResult SGGetBufferInfo(SGChannel c, short bufferNum, PixMapHandle *bufferPM, Rect *bufferRect, GWorldPtr *compressBuffer, Rect *compressBufferRect)
  2221. ;
  2222.     IF ¬ GENERATINGCFM THEN
  2223.         Macro
  2224.         _SGGetBufferInfo
  2225.             dc.w     $2F3C
  2226.             dc.w     $0012
  2227.             dc.w     $0115
  2228.             moveq    #0,d0
  2229.             dc.w     $A82A
  2230.         EndM
  2231.     ELSE
  2232.         IMPORT    SGGetBufferInfo
  2233.     ENDIF
  2234.  
  2235. ;
  2236. ; pascal ComponentResult SGSetUseScreenBuffer(SGChannel c, Boolean useScreenBuffer)
  2237. ;
  2238.     IF ¬ GENERATINGCFM THEN
  2239.         Macro
  2240.         _SGSetUseScreenBuffer
  2241.             dc.w     $2F3C
  2242.             dc.w     $0002
  2243.             dc.w     $0116
  2244.             moveq    #0,d0
  2245.             dc.w     $A82A
  2246.         EndM
  2247.     ELSE
  2248.         IMPORT    SGSetUseScreenBuffer
  2249.     ENDIF
  2250.  
  2251. ;
  2252. ; pascal ComponentResult SGGetUseScreenBuffer(SGChannel c, Boolean *useScreenBuffer)
  2253. ;
  2254.     IF ¬ GENERATINGCFM THEN
  2255.         Macro
  2256.         _SGGetUseScreenBuffer
  2257.             dc.w     $2F3C
  2258.             dc.w     $0004
  2259.             dc.w     $0117
  2260.             moveq    #0,d0
  2261.             dc.w     $A82A
  2262.         EndM
  2263.     ELSE
  2264.         IMPORT    SGGetUseScreenBuffer
  2265.     ENDIF
  2266.  
  2267. ;
  2268. ; pascal ComponentResult SGGrabCompressComplete(SGChannel c, Boolean *done, SGCompressInfo *ci, TimeRecord *tr)
  2269. ;
  2270.     IF ¬ GENERATINGCFM THEN
  2271.         Macro
  2272.         _SGGrabCompressComplete
  2273.             dc.w     $2F3C
  2274.             dc.w     $000C
  2275.             dc.w     $0118
  2276.             moveq    #0,d0
  2277.             dc.w     $A82A
  2278.         EndM
  2279.     ELSE
  2280.         IMPORT    SGGrabCompressComplete
  2281.     ENDIF
  2282.  
  2283. ;
  2284. ; pascal ComponentResult SGDisplayCompress(SGChannel c, Ptr dataPtr, ImageDescriptionHandle desc, MatrixRecord *mp, RgnHandle clipRgn)
  2285. ;
  2286.     IF ¬ GENERATINGCFM THEN
  2287.         Macro
  2288.         _SGDisplayCompress
  2289.             dc.w     $2F3C
  2290.             dc.w     $0010
  2291.             dc.w     $0119
  2292.             moveq    #0,d0
  2293.             dc.w     $A82A
  2294.         EndM
  2295.     ELSE
  2296.         IMPORT    SGDisplayCompress
  2297.     ENDIF
  2298.  
  2299. ;
  2300. ; pascal ComponentResult SGSetFrameRate(SGChannel c, Fixed frameRate)
  2301. ;
  2302.     IF ¬ GENERATINGCFM THEN
  2303.         Macro
  2304.         _SGSetFrameRate
  2305.             dc.w     $2F3C
  2306.             dc.w     $0004
  2307.             dc.w     $011A
  2308.             moveq    #0,d0
  2309.             dc.w     $A82A
  2310.         EndM
  2311.     ELSE
  2312.         IMPORT    SGSetFrameRate
  2313.     ENDIF
  2314.  
  2315. ;
  2316. ; pascal ComponentResult SGGetFrameRate(SGChannel c, Fixed *frameRate)
  2317. ;
  2318.     IF ¬ GENERATINGCFM THEN
  2319.         Macro
  2320.         _SGGetFrameRate
  2321.             dc.w     $2F3C
  2322.             dc.w     $0004
  2323.             dc.w     $011B
  2324.             moveq    #0,d0
  2325.             dc.w     $A82A
  2326.         EndM
  2327.     ELSE
  2328.         IMPORT    SGGetFrameRate
  2329.     ENDIF
  2330.  
  2331. ;** Sequence Grab SOUND CHANNEL Component Stuff **
  2332. ;
  2333. ;    Sound stuff
  2334. ;
  2335. ;
  2336. ; pascal ComponentResult SGSetSoundInputDriver(SGChannel c, ConstStr255Param driverName)
  2337. ;
  2338.     IF ¬ GENERATINGCFM THEN
  2339.         Macro
  2340.         _SGSetSoundInputDriver
  2341.             dc.w     $2F3C
  2342.             dc.w     $0004
  2343.             dc.w     $0100
  2344.             moveq    #0,d0
  2345.             dc.w     $A82A
  2346.         EndM
  2347.     ELSE
  2348.         IMPORT    SGSetSoundInputDriver
  2349.     ENDIF
  2350.  
  2351. ;
  2352. ; pascal long SGGetSoundInputDriver(SGChannel c)
  2353. ;
  2354.     IF ¬ GENERATINGCFM THEN
  2355.         Macro
  2356.         _SGGetSoundInputDriver
  2357.             dc.w     $2F3C
  2358.             dc.w     $0000
  2359.             dc.w     $0101
  2360.             moveq    #0,d0
  2361.             dc.w     $A82A
  2362.         EndM
  2363.     ELSE
  2364.         IMPORT    SGGetSoundInputDriver
  2365.     ENDIF
  2366.  
  2367. ;
  2368. ; pascal ComponentResult SGSoundInputDriverChanged(SGChannel c)
  2369. ;
  2370.     IF ¬ GENERATINGCFM THEN
  2371.         Macro
  2372.         _SGSoundInputDriverChanged
  2373.             dc.w     $2F3C
  2374.             dc.w     $0000
  2375.             dc.w     $0102
  2376.             moveq    #0,d0
  2377.             dc.w     $A82A
  2378.         EndM
  2379.     ELSE
  2380.         IMPORT    SGSoundInputDriverChanged
  2381.     ENDIF
  2382.  
  2383. ;
  2384. ; pascal ComponentResult SGSetSoundRecordChunkSize(SGChannel c, long seconds)
  2385. ;
  2386.     IF ¬ GENERATINGCFM THEN
  2387.         Macro
  2388.         _SGSetSoundRecordChunkSize
  2389.             dc.w     $2F3C
  2390.             dc.w     $0004
  2391.             dc.w     $0103
  2392.             moveq    #0,d0
  2393.             dc.w     $A82A
  2394.         EndM
  2395.     ELSE
  2396.         IMPORT    SGSetSoundRecordChunkSize
  2397.     ENDIF
  2398.  
  2399. ;
  2400. ; pascal long SGGetSoundRecordChunkSize(SGChannel c)
  2401. ;
  2402.     IF ¬ GENERATINGCFM THEN
  2403.         Macro
  2404.         _SGGetSoundRecordChunkSize
  2405.             dc.w     $2F3C
  2406.             dc.w     $0000
  2407.             dc.w     $0104
  2408.             moveq    #0,d0
  2409.             dc.w     $A82A
  2410.         EndM
  2411.     ELSE
  2412.         IMPORT    SGGetSoundRecordChunkSize
  2413.     ENDIF
  2414.  
  2415. ;
  2416. ; pascal ComponentResult SGSetSoundInputRate(SGChannel c, Fixed rate)
  2417. ;
  2418.     IF ¬ GENERATINGCFM THEN
  2419.         Macro
  2420.         _SGSetSoundInputRate
  2421.             dc.w     $2F3C
  2422.             dc.w     $0004
  2423.             dc.w     $0105
  2424.             moveq    #0,d0
  2425.             dc.w     $A82A
  2426.         EndM
  2427.     ELSE
  2428.         IMPORT    SGSetSoundInputRate
  2429.     ENDIF
  2430.  
  2431. ;
  2432. ; pascal Fixed SGGetSoundInputRate(SGChannel c)
  2433. ;
  2434.     IF ¬ GENERATINGCFM THEN
  2435.         Macro
  2436.         _SGGetSoundInputRate
  2437.             dc.w     $2F3C
  2438.             dc.w     $0000
  2439.             dc.w     $0106
  2440.             moveq    #0,d0
  2441.             dc.w     $A82A
  2442.         EndM
  2443.     ELSE
  2444.         IMPORT    SGGetSoundInputRate
  2445.     ENDIF
  2446.  
  2447. ;
  2448. ; pascal ComponentResult SGSetSoundInputParameters(SGChannel c, short sampleSize, short numChannels, OSType compressionType)
  2449. ;
  2450.     IF ¬ GENERATINGCFM THEN
  2451.         Macro
  2452.         _SGSetSoundInputParameters
  2453.             dc.w     $2F3C
  2454.             dc.w     $0008
  2455.             dc.w     $0107
  2456.             moveq    #0,d0
  2457.             dc.w     $A82A
  2458.         EndM
  2459.     ELSE
  2460.         IMPORT    SGSetSoundInputParameters
  2461.     ENDIF
  2462.  
  2463. ;
  2464. ; pascal ComponentResult SGGetSoundInputParameters(SGChannel c, short *sampleSize, short *numChannels, OSType *compressionType)
  2465. ;
  2466.     IF ¬ GENERATINGCFM THEN
  2467.         Macro
  2468.         _SGGetSoundInputParameters
  2469.             dc.w     $2F3C
  2470.             dc.w     $000C
  2471.             dc.w     $0108
  2472.             moveq    #0,d0
  2473.             dc.w     $A82A
  2474.         EndM
  2475.     ELSE
  2476.         IMPORT    SGGetSoundInputParameters
  2477.     ENDIF
  2478.  
  2479.  
  2480. sgChannelAtom                    EQU        'chan'
  2481. sgChannelSettingsAtom            EQU        'ctom'
  2482. sgChannelDescription            EQU        'cdsc'
  2483. sgChannelSettings                EQU        'cset'
  2484.  
  2485. sgDeviceNameType                EQU        'name'
  2486. sgUsageType                        EQU        'use '
  2487. sgPlayFlagsType                    EQU        'plyf'
  2488. sgClipType                        EQU        'clip'
  2489. sgMatrixType                    EQU        'mtrx'
  2490. sgVolumeType                    EQU        'volu'
  2491.  
  2492. sgPanelSettingsAtom                EQU        'ptom'
  2493. sgPanelDescription                EQU        'pdsc'
  2494. sgPanelSettings                    EQU        'pset'
  2495.  
  2496. sgcSoundCompressionType            EQU        'scmp'
  2497. sgcSoundSampleRateType            EQU        'srat'
  2498. sgcSoundChannelCountType        EQU        'schn'
  2499. sgcSoundSampleSizeType            EQU        'ssiz'
  2500. sgcSoundInputType                EQU        'sinp'
  2501. sgcSoundGainType                EQU        'gain'
  2502.  
  2503. sgcVideoHueType                    EQU        'hue '
  2504. sgcVideoSaturationType            EQU        'satr'
  2505. sgcVideoContrastType            EQU        'trst'
  2506. sgcVideoSharpnessType            EQU        'shrp'
  2507. sgcVideoBrigtnessType            EQU        'brit'
  2508. sgcVideoBlackLevelType            EQU        'blkl'
  2509. sgcVideoWhiteLevelType            EQU        'whtl'
  2510. sgcVideoInputType                EQU        'vinp'
  2511. sgcVideoFormatType                EQU        'vstd'
  2512. sgcVideoFilterType                EQU        'vflt'
  2513. sgcVideoRectType                EQU        'vrct'
  2514. sgVideoDigitizerType            EQU        'vdig'
  2515.  
  2516. kSGInitializeSelect                EQU        $1
  2517. kSGSetDataOutputSelect            EQU        $2
  2518. kSGGetDataOutputSelect            EQU        $3
  2519. kSGSetGWorldSelect                EQU        $4
  2520. kSGGetGWorldSelect                EQU        $5
  2521. kSGNewChannelSelect                EQU        $6
  2522. kSGDisposeChannelSelect            EQU        $7
  2523. kSGStartPreviewSelect            EQU        $10
  2524. kSGStartRecordSelect            EQU        $11
  2525. kSGIdleSelect                    EQU        $12
  2526. kSGStopSelect                    EQU        $13
  2527. kSGPauseSelect                    EQU        $14
  2528. kSGPrepareSelect                EQU        $15
  2529. kSGReleaseSelect                EQU        $16
  2530. kSGGetMovieSelect                EQU        $17
  2531. kSGSetMaximumRecordTimeSelect    EQU        $18
  2532. kSGGetMaximumRecordTimeSelect    EQU        $19
  2533. kSGGetStorageSpaceRemainingSelect EQU        $1A
  2534. kSGGetTimeRemainingSelect        EQU        $1B
  2535. kSGGrabPictSelect                EQU        $1C
  2536. kSGGetLastMovieResIDSelect        EQU        $1D
  2537. kSGSetFlagsSelect                EQU        $1E
  2538. kSGGetFlagsSelect                EQU        $1F
  2539. kSGSetDataProcSelect            EQU        $20
  2540. kSGNewChannelFromComponentSelect EQU        $21
  2541. kSGDisposeDeviceListSelect        EQU        $22
  2542. kSGAppendDeviceListToMenuSelect    EQU        $23
  2543. kSGSetSettingsSelect            EQU        $24
  2544. kSGGetSettingsSelect            EQU        $25
  2545. kSGGetIndChannelSelect            EQU        $26
  2546. kSGUpdateSelect                    EQU        $27
  2547. kSGGetPauseSelect                EQU        $28
  2548. kSGSettingsDialogSelect            EQU        $29
  2549. kSGGetAlignmentProcSelect        EQU        $2A
  2550. kSGSetChannelSettingsSelect        EQU        $2B
  2551. kSGGetChannelSettingsSelect        EQU        $2C
  2552. kSGGetModeSelect                EQU        $2D
  2553. kSGSetDataRefSelect                EQU        $2E
  2554. kSGGetDataRefSelect                EQU        $2F
  2555. kSGNewOutputSelect                EQU        $30
  2556. kSGDisposeOutputSelect            EQU        $31
  2557. kSGSetOutputFlagsSelect            EQU        $32
  2558. kSGSetChannelOutputSelect        EQU        $33
  2559. kSGGetDataOutputStorageSpaceRemainingSelect EQU        $34
  2560. kSGWriteMovieDataSelect            EQU        $100
  2561. kSGAddFrameReferenceSelect        EQU        $101
  2562. kSGGetNextFrameReferenceSelect    EQU        $102
  2563. kSGGetTimeBaseSelect            EQU        $103
  2564. kSGSortDeviceListSelect            EQU        $104
  2565. kSGAddMovieDataSelect            EQU        $105
  2566. kSGChangedSourceSelect            EQU        $106
  2567. kSGCSetChannelUsageSelect        EQU        $80
  2568. kSGCGetChannelUsageSelect        EQU        $81
  2569. kSGCSetChannelBoundsSelect        EQU        $82
  2570. kSGCGetChannelBoundsSelect        EQU        $83
  2571. kSGCSetChannelVolumeSelect        EQU        $84
  2572. kSGCGetChannelVolumeSelect        EQU        $85
  2573. kSGCGetChannelInfoSelect        EQU        $86
  2574. kSGCSetChannelPlayFlagsSelect    EQU        $87
  2575. kSGCGetChannelPlayFlagsSelect    EQU        $88
  2576. kSGCSetChannelMaxFramesSelect    EQU        $89
  2577. kSGCGetChannelMaxFramesSelect    EQU        $8A
  2578. kSGCSetChannelRefConSelect        EQU        $8B
  2579. kSGCSetChannelClipSelect        EQU        $8C
  2580. kSGCGetChannelClipSelect        EQU        $8D
  2581. kSGCGetChannelSampleDescriptionSelect EQU        $8E
  2582. kSGCGetChannelDeviceListSelect    EQU        $8F
  2583. kSGCSetChannelDeviceSelect        EQU        $90
  2584. kSGCSetChannelMatrixSelect        EQU        $91
  2585. kSGCGetChannelMatrixSelect        EQU        $92
  2586. kSGCGetChannelTimeScaleSelect    EQU        $93
  2587. kSGCChannelPutPictureSelect        EQU        $94
  2588. kSGCChannelSetRequestedDataRateSelect EQU        $95
  2589. kSGCChannelGetRequestedDataRateSelect EQU        $96
  2590. kSGCChannelSetDataSourceNameSelect EQU        $97
  2591. kSGCChannelGetDataSourceNameSelect EQU        $98
  2592. kSGCInitChannelSelect            EQU        $180
  2593. kSGCWriteSamplesSelect            EQU        $181
  2594. kSGCGetDataRateSelect            EQU        $182
  2595. kSGCAlignChannelRectSelect        EQU        $183
  2596. kSGCPanelGetDitlSelect            EQU        $200
  2597. kSGCPanelGetTitleSelect            EQU        $201
  2598. kSGCPanelCanRunSelect            EQU        $202
  2599. kSGCPanelInstallSelect            EQU        $203
  2600. kSGCPanelEventSelect            EQU        $204
  2601. kSGCPanelItemSelect                EQU        $205
  2602. kSGCPanelRemoveSelect            EQU        $206
  2603. kSGCPanelSetGrabberSelect        EQU        $207
  2604. kSGCPanelSetResFileSelect        EQU        $208
  2605. kSGCPanelGetSettingsSelect        EQU        $209
  2606. kSGCPanelSetSettingsSelect        EQU        $20A
  2607. kSGCPanelValidateInputSelect    EQU        $20B
  2608. kSGCPanelSetEventFilterSelect    EQU        $20C
  2609. kSGCGetSrcVideoBoundsSelect        EQU        $100
  2610. kSGCSetVideoRectSelect            EQU        $101
  2611. kSGCGetVideoRectSelect            EQU        $102
  2612. kSGCGetVideoCompressorTypeSelect EQU        $103
  2613. kSGCSetVideoCompressorTypeSelect EQU        $104
  2614. kSGCSetVideoCompressorSelect    EQU        $105
  2615. kSGCGetVideoCompressorSelect    EQU        $106
  2616. kSGCGetVideoDigitizerComponentSelect EQU        $107
  2617. kSGCSetVideoDigitizerComponentSelect EQU        $108
  2618. kSGCVideoDigitizerChangedSelect    EQU        $109
  2619. kSGCSetVideoBottlenecksSelect    EQU        $10A
  2620. kSGCGetVideoBottlenecksSelect    EQU        $10B
  2621. kSGCGrabFrameSelect                EQU        $10C
  2622. kSGCGrabFrameCompleteSelect        EQU        $10D
  2623. kSGCDisplayFrameSelect            EQU        $10E
  2624. kSGCCompressFrameSelect            EQU        $10F
  2625. kSGCCompressFrameCompleteSelect    EQU        $110
  2626. kSGCAddFrameSelect                EQU        $111
  2627. kSGCTransferFrameForCompressSelect EQU        $112
  2628. kSGCSetCompressBufferSelect        EQU        $113
  2629. kSGCGetCompressBufferSelect        EQU        $114
  2630. kSGCGetBufferInfoSelect            EQU        $115
  2631. kSGCSetUseScreenBufferSelect    EQU        $116
  2632. kSGCGetUseScreenBufferSelect    EQU        $117
  2633. kSGCGrabCompressCompleteSelect    EQU        $118
  2634. kSGCDisplayCompressSelect        EQU        $119
  2635. kSGCSetFrameRateSelect            EQU        $11A
  2636. kSGCGetFrameRateSelect            EQU        $11B
  2637. kSGCSetSoundInputDriverSelect    EQU        $100
  2638. kSGCGetSoundInputDriverSelect    EQU        $101
  2639. kSGCSoundInputDriverChangedSelect EQU        $102
  2640. kSGCSetSoundRecordChunkSizeSelect EQU        $103
  2641. kSGCGetSoundRecordChunkSizeSelect EQU        $104
  2642. kSGCSetSoundInputRateSelect        EQU        $105
  2643. kSGCGetSoundInputRateSelect        EQU        $106
  2644. kSGCSetSoundInputParametersSelect EQU        $107
  2645. kSGCGetSoundInputParametersSelect EQU        $108
  2646.  
  2647. ; Standard type for video digitizers 
  2648. videoDigitizerComponentType        EQU        'vdig'
  2649. vdigInterfaceRev                EQU        2
  2650.  
  2651. ; Input Format Standards 
  2652. ntscIn                            EQU        0                    ; current input format 
  2653. currentIn                        EQU        0                    ; ntsc input format 
  2654. palIn                            EQU        1                    ; pal input format 
  2655. secamIn                            EQU        2                    ; secam input format 
  2656. ntscReallyIn                    EQU        3                    ; ntsc input format 
  2657.  
  2658. ; Input Formats 
  2659. compositeIn                        EQU        0                    ; input is composite format 
  2660. sVideoIn                        EQU        1                    ; input is sVideo format 
  2661. rgbComponentIn                    EQU        2                    ; input is rgb component format 
  2662. rgbComponentSyncIn                EQU        3                    ; input is rgb component format (sync on green?)
  2663. yuvComponentIn                    EQU        4                    ; input is yuv component format 
  2664. yuvComponentSyncIn                EQU        5                    ; input is yuv component format (sync on green?) 
  2665. tvTunerIn                        EQU        6
  2666.  
  2667. ; Video Digitizer PlayThru States 
  2668. vdPlayThruOff                    EQU        0
  2669. vdPlayThruOn                    EQU        1
  2670.  
  2671. ; Input Color Space Modes 
  2672. vdDigitizerBW                    EQU        0                    ; black and white 
  2673. vdDigitizerRGB                    EQU        1                    ; rgb color 
  2674.  
  2675. ; Phase Lock Loop Modes 
  2676. vdBroadcastMode                    EQU        0                    ; Broadcast / Laser Disk video mode 
  2677. vdVTRMode                        EQU        1                    ; VCR / Magnetic media mode 
  2678.  
  2679. ; Field Select Options 
  2680. vdUseAnyField                    EQU        0                    ; Digitizers choice on field use 
  2681. vdUseOddField                    EQU        1                    ; Use odd field for half size vert and smaller 
  2682. vdUseEvenField                    EQU        2                    ; Use even field for half size vert and smaller 
  2683.  
  2684. ; vdig types 
  2685. vdTypeBasic                        EQU        0                    ; basic, no clipping 
  2686. vdTypeAlpha                        EQU        1                    ; supports clipping with alpha channel 
  2687. vdTypeMask                        EQU        2                    ; supports clipping with mask plane 
  2688. vdTypeKey                        EQU        3                    ; supports clipping with key color(s) 
  2689.  
  2690. ; Digitizer Input Capability/Current Flags    
  2691. digiInDoesNTSC                    EQU        1 << 0                ; digitizer supports NTSC input format 
  2692. digiInDoesPAL                    EQU        1 << 1                ; digitizer supports PAL input format 
  2693. digiInDoesSECAM                    EQU        1 << 2                ; digitizer supports SECAM input format 
  2694. digiInDoesGenLock                EQU        1 << 7                ; digitizer does genlock 
  2695. digiInDoesComposite                EQU        1 << 8                ; digitizer supports composite input type 
  2696. digiInDoesSVideo                EQU        1 << 9                ; digitizer supports S-Video input type 
  2697. digiInDoesComponent                EQU        1 << 10                ; digitizer supports component = rgb, input type 
  2698. digiInVTR_Broadcast                EQU        1 << 11                ; digitizer can differentiate between the two 
  2699. digiInDoesColor                    EQU        1 << 12                ; digitizer supports color 
  2700. digiInDoesBW                    EQU        1 << 13                ; digitizer supports black & white 
  2701. ; Digitizer Input Current Flags = these are valid only during active operating conditions,    
  2702. digiInSignalLock                EQU        1 << 31                ; digitizer detects input signal is locked, this bit = horiz lock || vertical lock 
  2703.  
  2704. ; Digitizer Output Capability/Current Flags 
  2705. digiOutDoes1                    EQU        1 << 0                ; digitizer supports 1 bit pixels 
  2706. digiOutDoes2                    EQU        1 << 1                ; digitizer supports 2 bit pixels 
  2707. digiOutDoes4                    EQU        1 << 2                ; digitizer supports 4 bit pixels 
  2708. digiOutDoes8                    EQU        1 << 3                ; digitizer supports 8 bit pixels 
  2709. digiOutDoes16                    EQU        1 << 4                ; digitizer supports 16 bit pixels 
  2710. digiOutDoes32                    EQU        1 << 5                ; digitizer supports 32 bit pixels 
  2711. digiOutDoesDither                EQU        1 << 6                ; digitizer dithers in indexed modes 
  2712. digiOutDoesStretch                EQU        1 << 7                ; digitizer can arbitrarily stretch 
  2713. digiOutDoesShrink                EQU        1 << 8                ; digitizer can arbitrarily shrink 
  2714. digiOutDoesMask                    EQU        1 << 9                ; digitizer can mask to clipping regions 
  2715. digiOutDoesDouble                EQU        1 << 11                ; digitizer can stretch to exactly double size 
  2716. digiOutDoesQuad                    EQU        1 << 12                ; digitizer can stretch exactly quadruple size 
  2717. digiOutDoesQuarter                EQU        1 << 13                ; digitizer can shrink to exactly quarter size 
  2718. digiOutDoesSixteenth            EQU        1 << 14                ; digitizer can shrink to exactly sixteenth size 
  2719. digiOutDoesRotate                EQU        1 << 15                ; digitizer supports rotate transformations 
  2720. digiOutDoesHorizFlip            EQU        1 << 16                ; digitizer supports horizontal flips Sx < 0 
  2721. digiOutDoesVertFlip                EQU        1 << 17                ; digitizer supports vertical flips Sy < 0 
  2722. digiOutDoesSkew                    EQU        1 << 18                ; digitizer supports skew = shear,twist, 
  2723. digiOutDoesBlend                EQU        1 << 19
  2724. digiOutDoesWarp                    EQU        1 << 20
  2725. digiOutDoesHW_DMA                EQU        1 << 21                ; digitizer not constrained to local device 
  2726. digiOutDoesHWPlayThru            EQU        1 << 22                ; digitizer doesn't need time to play thru 
  2727. digiOutDoesILUT                    EQU        1 << 23                ; digitizer does inverse LUT for index modes 
  2728. digiOutDoesKeyColor                EQU        1 << 24                ; digitizer does key color functions too 
  2729. digiOutDoesAsyncGrabs            EQU        1 << 25                ; digitizer supports async grabs 
  2730. digiOutDoesUnreadableScreenBits    EQU        1 << 26                ; playthru doesn't generate readable bits on screen
  2731. digiOutDoesCompress                EQU        1 << 27                ; supports alternate output data types 
  2732. digiOutDoesCompressOnly            EQU        1 << 28                ; can't provide raw frames anywhere 
  2733. digiOutDoesPlayThruDuringCompress EQU        1 << 29            ; digi can do playthru while providing compressed data 
  2734.  
  2735. ; Types 
  2736. ; typedef ComponentInstance  VideoDigitizerComponent
  2737. ; typedef ComponentResult     VideoDigitizerError
  2738. DigitizerInfo             RECORD    0
  2739. vdigType                 ds.w    1
  2740. inputCapabilityFlags     ds.l    1
  2741. outputCapabilityFlags     ds.l    1
  2742. inputCurrentFlags         ds.l    1
  2743. outputCurrentFlags         ds.l    1
  2744. slot                     ds.w    1                                    ; temporary for connection purposes 
  2745. gdh                         ds.l    1                                    ; temporary for digitizers that have preferred screen 
  2746. maskgdh                     ds.l    1                                    ; temporary for digitizers that have mask planes 
  2747. minDestHeight             ds.w    1                                    ; Smallest resizable height 
  2748. minDestWidth             ds.w    1                                    ; Smallest resizable width 
  2749. maxDestHeight             ds.w    1                                    ; Largest resizable height 
  2750. maxDestWidth             ds.w    1                                    ; Largest resizable height 
  2751. blendLevels                 ds.w    1                                    ; Number of blend levels supported (2 if 1 bit mask) 
  2752. reserved                 ds.l    1                                    ; reserved 
  2753. sizeof                     EQU    *
  2754.                         ENDR
  2755.  
  2756. ; typedef struct DigitizerInfo  DigitizerInfo
  2757. VdigType                 RECORD    0
  2758. digType                     ds.l    1
  2759. reserved                 ds.l    1
  2760. sizeof                     EQU    *
  2761.                         ENDR
  2762.  
  2763. ; typedef struct VdigType     VdigType
  2764. VdigTypeList             RECORD    0
  2765. count                     ds.w    1
  2766. list                     ds        VdigType
  2767. sizeof                     EQU    *
  2768.                         ENDR
  2769.  
  2770. ; typedef struct VdigTypeList  VdigTypeList
  2771. VdigBufferRec             RECORD    0
  2772. dest                     ds.l    1
  2773. location                 ds        Point
  2774. reserved                 ds.l    1
  2775. sizeof                     EQU    *
  2776.                         ENDR
  2777.  
  2778. ; typedef struct VdigBufferRec  VdigBufferRec
  2779. VdigBufferRecList         RECORD    0
  2780. count                     ds.w    1
  2781. matrix                     ds.l    1
  2782. mask                     ds.l    1
  2783. list                     ds        VdigBufferRec
  2784. sizeof                     EQU    *
  2785.                         ENDR
  2786.  
  2787. ; typedef struct VdigBufferRecList  VdigBufferRecList, *VdigBufferRecListPtr, **VdigBufferRecListHandle
  2788. VDCompressionList         RECORD    0
  2789. codec                     ds.l    1
  2790. cType                     ds.l    1
  2791. typeName                 ds.l    16
  2792. name                     ds.l    16
  2793. formatFlags                 ds.l    1
  2794. compressFlags             ds.l    1
  2795. reserved                 ds.l    1
  2796. sizeof                     EQU    *
  2797.                         ENDR
  2798.  
  2799. ; typedef struct VDCompressionList  VDCompressionList, *VDCompressionListPtr, **VDCompressionListHandle
  2800.  
  2801. dmaDepth1                        EQU        1
  2802. dmaDepth2                        EQU        2
  2803. dmaDepth4                        EQU        4
  2804. dmaDepth8                        EQU        8
  2805. dmaDepth16                        EQU        16
  2806. dmaDepth32                        EQU        32
  2807. dmaDepth2Gray                    EQU        64
  2808. dmaDepth4Gray                    EQU        128
  2809. dmaDepth8Gray                    EQU        256
  2810.  
  2811. kVDIGControlledFrameRate        EQU        -1
  2812.  
  2813. ; number of vdig calls
  2814. kvdigSelectors                    EQU        86
  2815.  
  2816. ;
  2817. ; pascal VideoDigitizerError VDGetMaxSrcRect(VideoDigitizerComponent ci, short inputStd, Rect *maxSrcRect)
  2818. ;
  2819.     IF ¬ GENERATINGCFM THEN
  2820.         Macro
  2821.         _VDGetMaxSrcRect
  2822.             dc.w     $2F3C
  2823.             dc.w     $0006
  2824.             dc.w     $0001
  2825.             moveq    #0,d0
  2826.             dc.w     $A82A
  2827.         EndM
  2828.     ELSE
  2829.         IMPORT    VDGetMaxSrcRect
  2830.     ENDIF
  2831.  
  2832. ;
  2833. ; pascal VideoDigitizerError VDGetActiveSrcRect(VideoDigitizerComponent ci, short inputStd, Rect *activeSrcRect)
  2834. ;
  2835.     IF ¬ GENERATINGCFM THEN
  2836.         Macro
  2837.         _VDGetActiveSrcRect
  2838.             dc.w     $2F3C
  2839.             dc.w     $0006
  2840.             dc.w     $0002
  2841.             moveq    #0,d0
  2842.             dc.w     $A82A
  2843.         EndM
  2844.     ELSE
  2845.         IMPORT    VDGetActiveSrcRect
  2846.     ENDIF
  2847.  
  2848. ;
  2849. ; pascal VideoDigitizerError VDSetDigitizerRect(VideoDigitizerComponent ci, Rect *digitizerRect)
  2850. ;
  2851.     IF ¬ GENERATINGCFM THEN
  2852.         Macro
  2853.         _VDSetDigitizerRect
  2854.             dc.w     $2F3C
  2855.             dc.w     $0004
  2856.             dc.w     $0003
  2857.             moveq    #0,d0
  2858.             dc.w     $A82A
  2859.         EndM
  2860.     ELSE
  2861.         IMPORT    VDSetDigitizerRect
  2862.     ENDIF
  2863.  
  2864. ;
  2865. ; pascal VideoDigitizerError VDGetDigitizerRect(VideoDigitizerComponent ci, Rect *digitizerRect)
  2866. ;
  2867.     IF ¬ GENERATINGCFM THEN
  2868.         Macro
  2869.         _VDGetDigitizerRect
  2870.             dc.w     $2F3C
  2871.             dc.w     $0004
  2872.             dc.w     $0004
  2873.             moveq    #0,d0
  2874.             dc.w     $A82A
  2875.         EndM
  2876.     ELSE
  2877.         IMPORT    VDGetDigitizerRect
  2878.     ENDIF
  2879.  
  2880. ;
  2881. ; pascal VideoDigitizerError VDGetVBlankRect(VideoDigitizerComponent ci, short inputStd, Rect *vBlankRect)
  2882. ;
  2883.     IF ¬ GENERATINGCFM THEN
  2884.         Macro
  2885.         _VDGetVBlankRect
  2886.             dc.w     $2F3C
  2887.             dc.w     $0006
  2888.             dc.w     $0005
  2889.             moveq    #0,d0
  2890.             dc.w     $A82A
  2891.         EndM
  2892.     ELSE
  2893.         IMPORT    VDGetVBlankRect
  2894.     ENDIF
  2895.  
  2896. ;
  2897. ; pascal VideoDigitizerError VDGetMaskPixMap(VideoDigitizerComponent ci, PixMapHandle maskPixMap)
  2898. ;
  2899.     IF ¬ GENERATINGCFM THEN
  2900.         Macro
  2901.         _VDGetMaskPixMap
  2902.             dc.w     $2F3C
  2903.             dc.w     $0004
  2904.             dc.w     $0006
  2905.             moveq    #0,d0
  2906.             dc.w     $A82A
  2907.         EndM
  2908.     ELSE
  2909.         IMPORT    VDGetMaskPixMap
  2910.     ENDIF
  2911.  
  2912. ;
  2913. ; pascal VideoDigitizerError VDGetPlayThruDestination(VideoDigitizerComponent ci, PixMapHandle *dest, Rect *destRect, MatrixRecord *m, RgnHandle *mask)
  2914. ;
  2915.     IF ¬ GENERATINGCFM THEN
  2916.         Macro
  2917.         _VDGetPlayThruDestination
  2918.             dc.w     $2F3C
  2919.             dc.w     $0010
  2920.             dc.w     $0008
  2921.             moveq    #0,d0
  2922.             dc.w     $A82A
  2923.         EndM
  2924.     ELSE
  2925.         IMPORT    VDGetPlayThruDestination
  2926.     ENDIF
  2927.  
  2928. ;
  2929. ; pascal VideoDigitizerError VDUseThisCLUT(VideoDigitizerComponent ci, CTabHandle colorTableHandle)
  2930. ;
  2931.     IF ¬ GENERATINGCFM THEN
  2932.         Macro
  2933.         _VDUseThisCLUT
  2934.             dc.w     $2F3C
  2935.             dc.w     $0004
  2936.             dc.w     $0009
  2937.             moveq    #0,d0
  2938.             dc.w     $A82A
  2939.         EndM
  2940.     ELSE
  2941.         IMPORT    VDUseThisCLUT
  2942.     ENDIF
  2943.  
  2944. ;
  2945. ; pascal VideoDigitizerError VDSetInputGammaValue(VideoDigitizerComponent ci, Fixed channel1, Fixed channel2, Fixed channel3)
  2946. ;
  2947.     IF ¬ GENERATINGCFM THEN
  2948.         Macro
  2949.         _VDSetInputGammaValue
  2950.             dc.w     $2F3C
  2951.             dc.w     $000C
  2952.             dc.w     $000A
  2953.             moveq    #0,d0
  2954.             dc.w     $A82A
  2955.         EndM
  2956.     ELSE
  2957.         IMPORT    VDSetInputGammaValue
  2958.     ENDIF
  2959.  
  2960. ;
  2961. ; pascal VideoDigitizerError VDGetInputGammaValue(VideoDigitizerComponent ci, Fixed *channel1, Fixed *channel2, Fixed *channel3)
  2962. ;
  2963.     IF ¬ GENERATINGCFM THEN
  2964.         Macro
  2965.         _VDGetInputGammaValue
  2966.             dc.w     $2F3C
  2967.             dc.w     $000C
  2968.             dc.w     $000B
  2969.             moveq    #0,d0
  2970.             dc.w     $A82A
  2971.         EndM
  2972.     ELSE
  2973.         IMPORT    VDGetInputGammaValue
  2974.     ENDIF
  2975.  
  2976. ;
  2977. ; pascal VideoDigitizerError VDSetBrightness(VideoDigitizerComponent ci, unsigned short *brightness)
  2978. ;
  2979.     IF ¬ GENERATINGCFM THEN
  2980.         Macro
  2981.         _VDSetBrightness
  2982.             dc.w     $2F3C
  2983.             dc.w     $0004
  2984.             dc.w     $000C
  2985.             moveq    #0,d0
  2986.             dc.w     $A82A
  2987.         EndM
  2988.     ELSE
  2989.         IMPORT    VDSetBrightness
  2990.     ENDIF
  2991.  
  2992. ;
  2993. ; pascal VideoDigitizerError VDGetBrightness(VideoDigitizerComponent ci, unsigned short *brightness)
  2994. ;
  2995.     IF ¬ GENERATINGCFM THEN
  2996.         Macro
  2997.         _VDGetBrightness
  2998.             dc.w     $2F3C
  2999.             dc.w     $0004
  3000.             dc.w     $000D
  3001.             moveq    #0,d0
  3002.             dc.w     $A82A
  3003.         EndM
  3004.     ELSE
  3005.         IMPORT    VDGetBrightness
  3006.     ENDIF
  3007.  
  3008. ;
  3009. ; pascal VideoDigitizerError VDSetContrast(VideoDigitizerComponent ci, unsigned short *contrast)
  3010. ;
  3011.     IF ¬ GENERATINGCFM THEN
  3012.         Macro
  3013.         _VDSetContrast
  3014.             dc.w     $2F3C
  3015.             dc.w     $0004
  3016.             dc.w     $000E
  3017.             moveq    #0,d0
  3018.             dc.w     $A82A
  3019.         EndM
  3020.     ELSE
  3021.         IMPORT    VDSetContrast
  3022.     ENDIF
  3023.  
  3024. ;
  3025. ; pascal VideoDigitizerError VDSetHue(VideoDigitizerComponent ci, unsigned short *hue)
  3026. ;
  3027.     IF ¬ GENERATINGCFM THEN
  3028.         Macro
  3029.         _VDSetHue
  3030.             dc.w     $2F3C
  3031.             dc.w     $0004
  3032.             dc.w     $000F
  3033.             moveq    #0,d0
  3034.             dc.w     $A82A
  3035.         EndM
  3036.     ELSE
  3037.         IMPORT    VDSetHue
  3038.     ENDIF
  3039.  
  3040. ;
  3041. ; pascal VideoDigitizerError VDSetSharpness(VideoDigitizerComponent ci, unsigned short *sharpness)
  3042. ;
  3043.     IF ¬ GENERATINGCFM THEN
  3044.         Macro
  3045.         _VDSetSharpness
  3046.             dc.w     $2F3C
  3047.             dc.w     $0004
  3048.             dc.w     $0010
  3049.             moveq    #0,d0
  3050.             dc.w     $A82A
  3051.         EndM
  3052.     ELSE
  3053.         IMPORT    VDSetSharpness
  3054.     ENDIF
  3055.  
  3056. ;
  3057. ; pascal VideoDigitizerError VDSetSaturation(VideoDigitizerComponent ci, unsigned short *saturation)
  3058. ;
  3059.     IF ¬ GENERATINGCFM THEN
  3060.         Macro
  3061.         _VDSetSaturation
  3062.             dc.w     $2F3C
  3063.             dc.w     $0004
  3064.             dc.w     $0011
  3065.             moveq    #0,d0
  3066.             dc.w     $A82A
  3067.         EndM
  3068.     ELSE
  3069.         IMPORT    VDSetSaturation
  3070.     ENDIF
  3071.  
  3072. ;
  3073. ; pascal VideoDigitizerError VDGetContrast(VideoDigitizerComponent ci, unsigned short *contrast)
  3074. ;
  3075.     IF ¬ GENERATINGCFM THEN
  3076.         Macro
  3077.         _VDGetContrast
  3078.             dc.w     $2F3C
  3079.             dc.w     $0004
  3080.             dc.w     $0012
  3081.             moveq    #0,d0
  3082.             dc.w     $A82A
  3083.         EndM
  3084.     ELSE
  3085.         IMPORT    VDGetContrast
  3086.     ENDIF
  3087.  
  3088. ;
  3089. ; pascal VideoDigitizerError VDGetHue(VideoDigitizerComponent ci, unsigned short *hue)
  3090. ;
  3091.     IF ¬ GENERATINGCFM THEN
  3092.         Macro
  3093.         _VDGetHue
  3094.             dc.w     $2F3C
  3095.             dc.w     $0004
  3096.             dc.w     $0013
  3097.             moveq    #0,d0
  3098.             dc.w     $A82A
  3099.         EndM
  3100.     ELSE
  3101.         IMPORT    VDGetHue
  3102.     ENDIF
  3103.  
  3104. ;
  3105. ; pascal VideoDigitizerError VDGetSharpness(VideoDigitizerComponent ci, unsigned short *sharpness)
  3106. ;
  3107.     IF ¬ GENERATINGCFM THEN
  3108.         Macro
  3109.         _VDGetSharpness
  3110.             dc.w     $2F3C
  3111.             dc.w     $0004
  3112.             dc.w     $0014
  3113.             moveq    #0,d0
  3114.             dc.w     $A82A
  3115.         EndM
  3116.     ELSE
  3117.         IMPORT    VDGetSharpness
  3118.     ENDIF
  3119.  
  3120. ;
  3121. ; pascal VideoDigitizerError VDGetSaturation(VideoDigitizerComponent ci, unsigned short *saturation)
  3122. ;
  3123.     IF ¬ GENERATINGCFM THEN
  3124.         Macro
  3125.         _VDGetSaturation
  3126.             dc.w     $2F3C
  3127.             dc.w     $0004
  3128.             dc.w     $0015
  3129.             moveq    #0,d0
  3130.             dc.w     $A82A
  3131.         EndM
  3132.     ELSE
  3133.         IMPORT    VDGetSaturation
  3134.     ENDIF
  3135.  
  3136. ;
  3137. ; pascal VideoDigitizerError VDGrabOneFrame(VideoDigitizerComponent ci)
  3138. ;
  3139.     IF ¬ GENERATINGCFM THEN
  3140.         Macro
  3141.         _VDGrabOneFrame
  3142.             dc.w     $2F3C
  3143.             dc.w     $0000
  3144.             dc.w     $0016
  3145.             moveq    #0,d0
  3146.             dc.w     $A82A
  3147.         EndM
  3148.     ELSE
  3149.         IMPORT    VDGrabOneFrame
  3150.     ENDIF
  3151.  
  3152. ;
  3153. ; pascal VideoDigitizerError VDGetMaxAuxBuffer(VideoDigitizerComponent ci, PixMapHandle *pm, Rect *r)
  3154. ;
  3155.     IF ¬ GENERATINGCFM THEN
  3156.         Macro
  3157.         _VDGetMaxAuxBuffer
  3158.             dc.w     $2F3C
  3159.             dc.w     $0008
  3160.             dc.w     $0017
  3161.             moveq    #0,d0
  3162.             dc.w     $A82A
  3163.         EndM
  3164.     ELSE
  3165.         IMPORT    VDGetMaxAuxBuffer
  3166.     ENDIF
  3167.  
  3168. ;
  3169. ; pascal VideoDigitizerError VDGetDigitizerInfo(VideoDigitizerComponent ci, DigitizerInfo *info)
  3170. ;
  3171.     IF ¬ GENERATINGCFM THEN
  3172.         Macro
  3173.         _VDGetDigitizerInfo
  3174.             dc.w     $2F3C
  3175.             dc.w     $0004
  3176.             dc.w     $0019
  3177.             moveq    #0,d0
  3178.             dc.w     $A82A
  3179.         EndM
  3180.     ELSE
  3181.         IMPORT    VDGetDigitizerInfo
  3182.     ENDIF
  3183.  
  3184. ;
  3185. ; pascal VideoDigitizerError VDGetCurrentFlags(VideoDigitizerComponent ci, long *inputCurrentFlag, long *outputCurrentFlag)
  3186. ;
  3187.     IF ¬ GENERATINGCFM THEN
  3188.         Macro
  3189.         _VDGetCurrentFlags
  3190.             dc.w     $2F3C
  3191.             dc.w     $0008
  3192.             dc.w     $001A
  3193.             moveq    #0,d0
  3194.             dc.w     $A82A
  3195.         EndM
  3196.     ELSE
  3197.         IMPORT    VDGetCurrentFlags
  3198.     ENDIF
  3199.  
  3200. ;
  3201. ; pascal VideoDigitizerError VDSetKeyColor(VideoDigitizerComponent ci, long index)
  3202. ;
  3203.     IF ¬ GENERATINGCFM THEN
  3204.         Macro
  3205.         _VDSetKeyColor
  3206.             dc.w     $2F3C
  3207.             dc.w     $0004
  3208.             dc.w     $001B
  3209.             moveq    #0,d0
  3210.             dc.w     $A82A
  3211.         EndM
  3212.     ELSE
  3213.         IMPORT    VDSetKeyColor
  3214.     ENDIF
  3215.  
  3216. ;
  3217. ; pascal VideoDigitizerError VDGetKeyColor(VideoDigitizerComponent ci, long *index)
  3218. ;
  3219.     IF ¬ GENERATINGCFM THEN
  3220.         Macro
  3221.         _VDGetKeyColor
  3222.             dc.w     $2F3C
  3223.             dc.w     $0004
  3224.             dc.w     $001C
  3225.             moveq    #0,d0
  3226.             dc.w     $A82A
  3227.         EndM
  3228.     ELSE
  3229.         IMPORT    VDGetKeyColor
  3230.     ENDIF
  3231.  
  3232. ;
  3233. ; pascal VideoDigitizerError VDAddKeyColor(VideoDigitizerComponent ci, long *index)
  3234. ;
  3235.     IF ¬ GENERATINGCFM THEN
  3236.         Macro
  3237.         _VDAddKeyColor
  3238.             dc.w     $2F3C
  3239.             dc.w     $0004
  3240.             dc.w     $001D
  3241.             moveq    #0,d0
  3242.             dc.w     $A82A
  3243.         EndM
  3244.     ELSE
  3245.         IMPORT    VDAddKeyColor
  3246.     ENDIF
  3247.  
  3248. ;
  3249. ; pascal VideoDigitizerError VDGetNextKeyColor(VideoDigitizerComponent ci, long index)
  3250. ;
  3251.     IF ¬ GENERATINGCFM THEN
  3252.         Macro
  3253.         _VDGetNextKeyColor
  3254.             dc.w     $2F3C
  3255.             dc.w     $0004
  3256.             dc.w     $001E
  3257.             moveq    #0,d0
  3258.             dc.w     $A82A
  3259.         EndM
  3260.     ELSE
  3261.         IMPORT    VDGetNextKeyColor
  3262.     ENDIF
  3263.  
  3264. ;
  3265. ; pascal VideoDigitizerError VDSetKeyColorRange(VideoDigitizerComponent ci, RGBColor *minRGB, RGBColor *maxRGB)
  3266. ;
  3267.     IF ¬ GENERATINGCFM THEN
  3268.         Macro
  3269.         _VDSetKeyColorRange
  3270.             dc.w     $2F3C
  3271.             dc.w     $0008
  3272.             dc.w     $001F
  3273.             moveq    #0,d0
  3274.             dc.w     $A82A
  3275.         EndM
  3276.     ELSE
  3277.         IMPORT    VDSetKeyColorRange
  3278.     ENDIF
  3279.  
  3280. ;
  3281. ; pascal VideoDigitizerError VDGetKeyColorRange(VideoDigitizerComponent ci, RGBColor *minRGB, RGBColor *maxRGB)
  3282. ;
  3283.     IF ¬ GENERATINGCFM THEN
  3284.         Macro
  3285.         _VDGetKeyColorRange
  3286.             dc.w     $2F3C
  3287.             dc.w     $0008
  3288.             dc.w     $0020
  3289.             moveq    #0,d0
  3290.             dc.w     $A82A
  3291.         EndM
  3292.     ELSE
  3293.         IMPORT    VDGetKeyColorRange
  3294.     ENDIF
  3295.  
  3296. ;
  3297. ; pascal VideoDigitizerError VDSetDigitizerUserInterrupt(VideoDigitizerComponent ci, long flags, VdigIntUPP userInterruptProc, long refcon)
  3298. ;
  3299.     IF ¬ GENERATINGCFM THEN
  3300.         Macro
  3301.         _VDSetDigitizerUserInterrupt
  3302.             dc.w     $2F3C
  3303.             dc.w     $000C
  3304.             dc.w     $0021
  3305.             moveq    #0,d0
  3306.             dc.w     $A82A
  3307.         EndM
  3308.     ELSE
  3309.         IMPORT    VDSetDigitizerUserInterrupt
  3310.     ENDIF
  3311.  
  3312. ;
  3313. ; pascal VideoDigitizerError VDSetInputColorSpaceMode(VideoDigitizerComponent ci, short colorSpaceMode)
  3314. ;
  3315.     IF ¬ GENERATINGCFM THEN
  3316.         Macro
  3317.         _VDSetInputColorSpaceMode
  3318.             dc.w     $2F3C
  3319.             dc.w     $0002
  3320.             dc.w     $0022
  3321.             moveq    #0,d0
  3322.             dc.w     $A82A
  3323.         EndM
  3324.     ELSE
  3325.         IMPORT    VDSetInputColorSpaceMode
  3326.     ENDIF
  3327.  
  3328. ;
  3329. ; pascal VideoDigitizerError VDGetInputColorSpaceMode(VideoDigitizerComponent ci, short *colorSpaceMode)
  3330. ;
  3331.     IF ¬ GENERATINGCFM THEN
  3332.         Macro
  3333.         _VDGetInputColorSpaceMode
  3334.             dc.w     $2F3C
  3335.             dc.w     $0004
  3336.             dc.w     $0023
  3337.             moveq    #0,d0
  3338.             dc.w     $A82A
  3339.         EndM
  3340.     ELSE
  3341.         IMPORT    VDGetInputColorSpaceMode
  3342.     ENDIF
  3343.  
  3344. ;
  3345. ; pascal VideoDigitizerError VDSetClipState(VideoDigitizerComponent ci, short clipEnable)
  3346. ;
  3347.     IF ¬ GENERATINGCFM THEN
  3348.         Macro
  3349.         _VDSetClipState
  3350.             dc.w     $2F3C
  3351.             dc.w     $0002
  3352.             dc.w     $0024
  3353.             moveq    #0,d0
  3354.             dc.w     $A82A
  3355.         EndM
  3356.     ELSE
  3357.         IMPORT    VDSetClipState
  3358.     ENDIF
  3359.  
  3360. ;
  3361. ; pascal VideoDigitizerError VDGetClipState(VideoDigitizerComponent ci, short *clipEnable)
  3362. ;
  3363.     IF ¬ GENERATINGCFM THEN
  3364.         Macro
  3365.         _VDGetClipState
  3366.             dc.w     $2F3C
  3367.             dc.w     $0004
  3368.             dc.w     $0025
  3369.             moveq    #0,d0
  3370.             dc.w     $A82A
  3371.         EndM
  3372.     ELSE
  3373.         IMPORT    VDGetClipState
  3374.     ENDIF
  3375.  
  3376. ;
  3377. ; pascal VideoDigitizerError VDSetClipRgn(VideoDigitizerComponent ci, RgnHandle clipRegion)
  3378. ;
  3379.     IF ¬ GENERATINGCFM THEN
  3380.         Macro
  3381.         _VDSetClipRgn
  3382.             dc.w     $2F3C
  3383.             dc.w     $0004
  3384.             dc.w     $0026
  3385.             moveq    #0,d0
  3386.             dc.w     $A82A
  3387.         EndM
  3388.     ELSE
  3389.         IMPORT    VDSetClipRgn
  3390.     ENDIF
  3391.  
  3392. ;
  3393. ; pascal VideoDigitizerError VDClearClipRgn(VideoDigitizerComponent ci, RgnHandle clipRegion)
  3394. ;
  3395.     IF ¬ GENERATINGCFM THEN
  3396.         Macro
  3397.         _VDClearClipRgn
  3398.             dc.w     $2F3C
  3399.             dc.w     $0004
  3400.             dc.w     $0027
  3401.             moveq    #0,d0
  3402.             dc.w     $A82A
  3403.         EndM
  3404.     ELSE
  3405.         IMPORT    VDClearClipRgn
  3406.     ENDIF
  3407.  
  3408. ;
  3409. ; pascal VideoDigitizerError VDGetCLUTInUse(VideoDigitizerComponent ci, CTabHandle *colorTableHandle)
  3410. ;
  3411.     IF ¬ GENERATINGCFM THEN
  3412.         Macro
  3413.         _VDGetCLUTInUse
  3414.             dc.w     $2F3C
  3415.             dc.w     $0004
  3416.             dc.w     $0028
  3417.             moveq    #0,d0
  3418.             dc.w     $A82A
  3419.         EndM
  3420.     ELSE
  3421.         IMPORT    VDGetCLUTInUse
  3422.     ENDIF
  3423.  
  3424. ;
  3425. ; pascal VideoDigitizerError VDSetPLLFilterType(VideoDigitizerComponent ci, short pllType)
  3426. ;
  3427.     IF ¬ GENERATINGCFM THEN
  3428.         Macro
  3429.         _VDSetPLLFilterType
  3430.             dc.w     $2F3C
  3431.             dc.w     $0002
  3432.             dc.w     $0029
  3433.             moveq    #0,d0
  3434.             dc.w     $A82A
  3435.         EndM
  3436.     ELSE
  3437.         IMPORT    VDSetPLLFilterType
  3438.     ENDIF
  3439.  
  3440. ;
  3441. ; pascal VideoDigitizerError VDGetPLLFilterType(VideoDigitizerComponent ci, short *pllType)
  3442. ;
  3443.     IF ¬ GENERATINGCFM THEN
  3444.         Macro
  3445.         _VDGetPLLFilterType
  3446.             dc.w     $2F3C
  3447.             dc.w     $0004
  3448.             dc.w     $002A
  3449.             moveq    #0,d0
  3450.             dc.w     $A82A
  3451.         EndM
  3452.     ELSE
  3453.         IMPORT    VDGetPLLFilterType
  3454.     ENDIF
  3455.  
  3456. ;
  3457. ; pascal VideoDigitizerError VDGetMaskandValue(VideoDigitizerComponent ci, unsigned short blendLevel, long *mask, long *value)
  3458. ;
  3459.     IF ¬ GENERATINGCFM THEN
  3460.         Macro
  3461.         _VDGetMaskandValue
  3462.             dc.w     $2F3C
  3463.             dc.w     $000A
  3464.             dc.w     $002B
  3465.             moveq    #0,d0
  3466.             dc.w     $A82A
  3467.         EndM
  3468.     ELSE
  3469.         IMPORT    VDGetMaskandValue
  3470.     ENDIF
  3471.  
  3472. ;
  3473. ; pascal VideoDigitizerError VDSetMasterBlendLevel(VideoDigitizerComponent ci, unsigned short *blendLevel)
  3474. ;
  3475.     IF ¬ GENERATINGCFM THEN
  3476.         Macro
  3477.         _VDSetMasterBlendLevel
  3478.             dc.w     $2F3C
  3479.             dc.w     $0004
  3480.             dc.w     $002C
  3481.             moveq    #0,d0
  3482.             dc.w     $A82A
  3483.         EndM
  3484.     ELSE
  3485.         IMPORT    VDSetMasterBlendLevel
  3486.     ENDIF
  3487.  
  3488. ;
  3489. ; pascal VideoDigitizerError VDSetPlayThruDestination(VideoDigitizerComponent ci, PixMapHandle dest, Rect *destRect, MatrixRecord *m, RgnHandle mask)
  3490. ;
  3491.     IF ¬ GENERATINGCFM THEN
  3492.         Macro
  3493.         _VDSetPlayThruDestination
  3494.             dc.w     $2F3C
  3495.             dc.w     $0010
  3496.             dc.w     $002D
  3497.             moveq    #0,d0
  3498.             dc.w     $A82A
  3499.         EndM
  3500.     ELSE
  3501.         IMPORT    VDSetPlayThruDestination
  3502.     ENDIF
  3503.  
  3504. ;
  3505. ; pascal VideoDigitizerError VDSetPlayThruOnOff(VideoDigitizerComponent ci, short state)
  3506. ;
  3507.     IF ¬ GENERATINGCFM THEN
  3508.         Macro
  3509.         _VDSetPlayThruOnOff
  3510.             dc.w     $2F3C
  3511.             dc.w     $0002
  3512.             dc.w     $002E
  3513.             moveq    #0,d0
  3514.             dc.w     $A82A
  3515.         EndM
  3516.     ELSE
  3517.         IMPORT    VDSetPlayThruOnOff
  3518.     ENDIF
  3519.  
  3520. ;
  3521. ; pascal VideoDigitizerError VDSetFieldPreference(VideoDigitizerComponent ci, short fieldFlag)
  3522. ;
  3523.     IF ¬ GENERATINGCFM THEN
  3524.         Macro
  3525.         _VDSetFieldPreference
  3526.             dc.w     $2F3C
  3527.             dc.w     $0002
  3528.             dc.w     $002F
  3529.             moveq    #0,d0
  3530.             dc.w     $A82A
  3531.         EndM
  3532.     ELSE
  3533.         IMPORT    VDSetFieldPreference
  3534.     ENDIF
  3535.  
  3536. ;
  3537. ; pascal VideoDigitizerError VDGetFieldPreference(VideoDigitizerComponent ci, short *fieldFlag)
  3538. ;
  3539.     IF ¬ GENERATINGCFM THEN
  3540.         Macro
  3541.         _VDGetFieldPreference
  3542.             dc.w     $2F3C
  3543.             dc.w     $0004
  3544.             dc.w     $0030
  3545.             moveq    #0,d0
  3546.             dc.w     $A82A
  3547.         EndM
  3548.     ELSE
  3549.         IMPORT    VDGetFieldPreference
  3550.     ENDIF
  3551.  
  3552. ;
  3553. ; pascal VideoDigitizerError VDPreflightDestination(VideoDigitizerComponent ci, Rect *digitizerRect, PixMap **dest, Rect *destRect, MatrixRecord *m)
  3554. ;
  3555.     IF ¬ GENERATINGCFM THEN
  3556.         Macro
  3557.         _VDPreflightDestination
  3558.             dc.w     $2F3C
  3559.             dc.w     $0010
  3560.             dc.w     $0032
  3561.             moveq    #0,d0
  3562.             dc.w     $A82A
  3563.         EndM
  3564.     ELSE
  3565.         IMPORT    VDPreflightDestination
  3566.     ENDIF
  3567.  
  3568. ;
  3569. ; pascal VideoDigitizerError VDPreflightGlobalRect(VideoDigitizerComponent ci, GrafPtr theWindow, Rect *globalRect)
  3570. ;
  3571.     IF ¬ GENERATINGCFM THEN
  3572.         Macro
  3573.         _VDPreflightGlobalRect
  3574.             dc.w     $2F3C
  3575.             dc.w     $0008
  3576.             dc.w     $0033
  3577.             moveq    #0,d0
  3578.             dc.w     $A82A
  3579.         EndM
  3580.     ELSE
  3581.         IMPORT    VDPreflightGlobalRect
  3582.     ENDIF
  3583.  
  3584. ;
  3585. ; pascal VideoDigitizerError VDSetPlayThruGlobalRect(VideoDigitizerComponent ci, GrafPtr theWindow, Rect *globalRect)
  3586. ;
  3587.     IF ¬ GENERATINGCFM THEN
  3588.         Macro
  3589.         _VDSetPlayThruGlobalRect
  3590.             dc.w     $2F3C
  3591.             dc.w     $0008
  3592.             dc.w     $0034
  3593.             moveq    #0,d0
  3594.             dc.w     $A82A
  3595.         EndM
  3596.     ELSE
  3597.         IMPORT    VDSetPlayThruGlobalRect
  3598.     ENDIF
  3599.  
  3600. ;
  3601. ; pascal VideoDigitizerError VDSetInputGammaRecord(VideoDigitizerComponent ci, VDGamRecPtr inputGammaPtr)
  3602. ;
  3603.     IF ¬ GENERATINGCFM THEN
  3604.         Macro
  3605.         _VDSetInputGammaRecord
  3606.             dc.w     $2F3C
  3607.             dc.w     $0004
  3608.             dc.w     $0035
  3609.             moveq    #0,d0
  3610.             dc.w     $A82A
  3611.         EndM
  3612.     ELSE
  3613.         IMPORT    VDSetInputGammaRecord
  3614.     ENDIF
  3615.  
  3616. ;
  3617. ; pascal VideoDigitizerError VDGetInputGammaRecord(VideoDigitizerComponent ci, VDGamRecPtr *inputGammaPtr)
  3618. ;
  3619.     IF ¬ GENERATINGCFM THEN
  3620.         Macro
  3621.         _VDGetInputGammaRecord
  3622.             dc.w     $2F3C
  3623.             dc.w     $0004
  3624.             dc.w     $0036
  3625.             moveq    #0,d0
  3626.             dc.w     $A82A
  3627.         EndM
  3628.     ELSE
  3629.         IMPORT    VDGetInputGammaRecord
  3630.     ENDIF
  3631.  
  3632. ;
  3633. ; pascal VideoDigitizerError VDSetBlackLevelValue(VideoDigitizerComponent ci, unsigned short *blackLevel)
  3634. ;
  3635.     IF ¬ GENERATINGCFM THEN
  3636.         Macro
  3637.         _VDSetBlackLevelValue
  3638.             dc.w     $2F3C
  3639.             dc.w     $0004
  3640.             dc.w     $0037
  3641.             moveq    #0,d0
  3642.             dc.w     $A82A
  3643.         EndM
  3644.     ELSE
  3645.         IMPORT    VDSetBlackLevelValue
  3646.     ENDIF
  3647.  
  3648. ;
  3649. ; pascal VideoDigitizerError VDGetBlackLevelValue(VideoDigitizerComponent ci, unsigned short *blackLevel)
  3650. ;
  3651.     IF ¬ GENERATINGCFM THEN
  3652.         Macro
  3653.         _VDGetBlackLevelValue
  3654.             dc.w     $2F3C
  3655.             dc.w     $0004
  3656.             dc.w     $0038
  3657.             moveq    #0,d0
  3658.             dc.w     $A82A
  3659.         EndM
  3660.     ELSE
  3661.         IMPORT    VDGetBlackLevelValue
  3662.     ENDIF
  3663.  
  3664. ;
  3665. ; pascal VideoDigitizerError VDSetWhiteLevelValue(VideoDigitizerComponent ci, unsigned short *whiteLevel)
  3666. ;
  3667.     IF ¬ GENERATINGCFM THEN
  3668.         Macro
  3669.         _VDSetWhiteLevelValue
  3670.             dc.w     $2F3C
  3671.             dc.w     $0004
  3672.             dc.w     $0039
  3673.             moveq    #0,d0
  3674.             dc.w     $A82A
  3675.         EndM
  3676.     ELSE
  3677.         IMPORT    VDSetWhiteLevelValue
  3678.     ENDIF
  3679.  
  3680. ;
  3681. ; pascal VideoDigitizerError VDGetWhiteLevelValue(VideoDigitizerComponent ci, unsigned short *whiteLevel)
  3682. ;
  3683.     IF ¬ GENERATINGCFM THEN
  3684.         Macro
  3685.         _VDGetWhiteLevelValue
  3686.             dc.w     $2F3C
  3687.             dc.w     $0004
  3688.             dc.w     $003A
  3689.             moveq    #0,d0
  3690.             dc.w     $A82A
  3691.         EndM
  3692.     ELSE
  3693.         IMPORT    VDGetWhiteLevelValue
  3694.     ENDIF
  3695.  
  3696. ;
  3697. ; pascal VideoDigitizerError VDGetVideoDefaults(VideoDigitizerComponent ci, unsigned short *blackLevel, unsigned short *whiteLevel, unsigned short *brightness, unsigned short *hue, unsigned short *saturation, unsigned short *contrast, unsigned short *sharpness)
  3698. ;
  3699.     IF ¬ GENERATINGCFM THEN
  3700.         Macro
  3701.         _VDGetVideoDefaults
  3702.             dc.w     $2F3C
  3703.             dc.w     $001C
  3704.             dc.w     $003B
  3705.             moveq    #0,d0
  3706.             dc.w     $A82A
  3707.         EndM
  3708.     ELSE
  3709.         IMPORT    VDGetVideoDefaults
  3710.     ENDIF
  3711.  
  3712. ;
  3713. ; pascal VideoDigitizerError VDGetNumberOfInputs(VideoDigitizerComponent ci, short *inputs)
  3714. ;
  3715.     IF ¬ GENERATINGCFM THEN
  3716.         Macro
  3717.         _VDGetNumberOfInputs
  3718.             dc.w     $2F3C
  3719.             dc.w     $0004
  3720.             dc.w     $003C
  3721.             moveq    #0,d0
  3722.             dc.w     $A82A
  3723.         EndM
  3724.     ELSE
  3725.         IMPORT    VDGetNumberOfInputs
  3726.     ENDIF
  3727.  
  3728. ;
  3729. ; pascal VideoDigitizerError VDGetInputFormat(VideoDigitizerComponent ci, short input, short *format)
  3730. ;
  3731.     IF ¬ GENERATINGCFM THEN
  3732.         Macro
  3733.         _VDGetInputFormat
  3734.             dc.w     $2F3C
  3735.             dc.w     $0006
  3736.             dc.w     $003D
  3737.             moveq    #0,d0
  3738.             dc.w     $A82A
  3739.         EndM
  3740.     ELSE
  3741.         IMPORT    VDGetInputFormat
  3742.     ENDIF
  3743.  
  3744. ;
  3745. ; pascal VideoDigitizerError VDSetInput(VideoDigitizerComponent ci, short input)
  3746. ;
  3747.     IF ¬ GENERATINGCFM THEN
  3748.         Macro
  3749.         _VDSetInput
  3750.             dc.w     $2F3C
  3751.             dc.w     $0002
  3752.             dc.w     $003E
  3753.             moveq    #0,d0
  3754.             dc.w     $A82A
  3755.         EndM
  3756.     ELSE
  3757.         IMPORT    VDSetInput
  3758.     ENDIF
  3759.  
  3760. ;
  3761. ; pascal VideoDigitizerError VDGetInput(VideoDigitizerComponent ci, short *input)
  3762. ;
  3763.     IF ¬ GENERATINGCFM THEN
  3764.         Macro
  3765.         _VDGetInput
  3766.             dc.w     $2F3C
  3767.             dc.w     $0004
  3768.             dc.w     $003F
  3769.             moveq    #0,d0
  3770.             dc.w     $A82A
  3771.         EndM
  3772.     ELSE
  3773.         IMPORT    VDGetInput
  3774.     ENDIF
  3775.  
  3776. ;
  3777. ; pascal VideoDigitizerError VDSetInputStandard(VideoDigitizerComponent ci, short inputStandard)
  3778. ;
  3779.     IF ¬ GENERATINGCFM THEN
  3780.         Macro
  3781.         _VDSetInputStandard
  3782.             dc.w     $2F3C
  3783.             dc.w     $0002
  3784.             dc.w     $0040
  3785.             moveq    #0,d0
  3786.             dc.w     $A82A
  3787.         EndM
  3788.     ELSE
  3789.         IMPORT    VDSetInputStandard
  3790.     ENDIF
  3791.  
  3792. ;
  3793. ; pascal VideoDigitizerError VDSetupBuffers(VideoDigitizerComponent ci, VdigBufferRecListHandle bufferList)
  3794. ;
  3795.     IF ¬ GENERATINGCFM THEN
  3796.         Macro
  3797.         _VDSetupBuffers
  3798.             dc.w     $2F3C
  3799.             dc.w     $0004
  3800.             dc.w     $0041
  3801.             moveq    #0,d0
  3802.             dc.w     $A82A
  3803.         EndM
  3804.     ELSE
  3805.         IMPORT    VDSetupBuffers
  3806.     ENDIF
  3807.  
  3808. ;
  3809. ; pascal VideoDigitizerError VDGrabOneFrameAsync(VideoDigitizerComponent ci, short buffer)
  3810. ;
  3811.     IF ¬ GENERATINGCFM THEN
  3812.         Macro
  3813.         _VDGrabOneFrameAsync
  3814.             dc.w     $2F3C
  3815.             dc.w     $0002
  3816.             dc.w     $0042
  3817.             moveq    #0,d0
  3818.             dc.w     $A82A
  3819.         EndM
  3820.     ELSE
  3821.         IMPORT    VDGrabOneFrameAsync
  3822.     ENDIF
  3823.  
  3824. ;
  3825. ; pascal VideoDigitizerError VDDone(VideoDigitizerComponent ci, short buffer)
  3826. ;
  3827.     IF ¬ GENERATINGCFM THEN
  3828.         Macro
  3829.         _VDDone
  3830.             dc.w     $2F3C
  3831.             dc.w     $0002
  3832.             dc.w     $0043
  3833.             moveq    #0,d0
  3834.             dc.w     $A82A
  3835.         EndM
  3836.     ELSE
  3837.         IMPORT    VDDone
  3838.     ENDIF
  3839.  
  3840. ;
  3841. ; pascal VideoDigitizerError VDSetCompression(VideoDigitizerComponent ci, OSType compressType, short depth, Rect *bounds, CodecQ spatialQuality, CodecQ temporalQuality, long keyFrameRate)
  3842. ;
  3843.     IF ¬ GENERATINGCFM THEN
  3844.         Macro
  3845.         _VDSetCompression
  3846.             dc.w     $2F3C
  3847.             dc.w     $0016
  3848.             dc.w     $0044
  3849.             moveq    #0,d0
  3850.             dc.w     $A82A
  3851.         EndM
  3852.     ELSE
  3853.         IMPORT    VDSetCompression
  3854.     ENDIF
  3855.  
  3856. ;
  3857. ; pascal VideoDigitizerError VDCompressOneFrameAsync(VideoDigitizerComponent ci)
  3858. ;
  3859.     IF ¬ GENERATINGCFM THEN
  3860.         Macro
  3861.         _VDCompressOneFrameAsync
  3862.             dc.w     $2F3C
  3863.             dc.w     $0000
  3864.             dc.w     $0045
  3865.             moveq    #0,d0
  3866.             dc.w     $A82A
  3867.         EndM
  3868.     ELSE
  3869.         IMPORT    VDCompressOneFrameAsync
  3870.     ENDIF
  3871.  
  3872. ;
  3873. ; pascal VideoDigitizerError VDCompressDone(VideoDigitizerComponent ci, Boolean *done, Ptr *theData, long *dataSize, UInt8 *similarity, TimeRecord *t)
  3874. ;
  3875.     IF ¬ GENERATINGCFM THEN
  3876.         Macro
  3877.         _VDCompressDone
  3878.             dc.w     $2F3C
  3879.             dc.w     $0014
  3880.             dc.w     $0046
  3881.             moveq    #0,d0
  3882.             dc.w     $A82A
  3883.         EndM
  3884.     ELSE
  3885.         IMPORT    VDCompressDone
  3886.     ENDIF
  3887.  
  3888. ;
  3889. ; pascal VideoDigitizerError VDReleaseCompressBuffer(VideoDigitizerComponent ci, Ptr bufferAddr)
  3890. ;
  3891.     IF ¬ GENERATINGCFM THEN
  3892.         Macro
  3893.         _VDReleaseCompressBuffer
  3894.             dc.w     $2F3C
  3895.             dc.w     $0004
  3896.             dc.w     $0047
  3897.             moveq    #0,d0
  3898.             dc.w     $A82A
  3899.         EndM
  3900.     ELSE
  3901.         IMPORT    VDReleaseCompressBuffer
  3902.     ENDIF
  3903.  
  3904. ;
  3905. ; pascal VideoDigitizerError VDGetImageDescription(VideoDigitizerComponent ci, ImageDescriptionHandle desc)
  3906. ;
  3907.     IF ¬ GENERATINGCFM THEN
  3908.         Macro
  3909.         _VDGetImageDescription
  3910.             dc.w     $2F3C
  3911.             dc.w     $0004
  3912.             dc.w     $0048
  3913.             moveq    #0,d0
  3914.             dc.w     $A82A
  3915.         EndM
  3916.     ELSE
  3917.         IMPORT    VDGetImageDescription
  3918.     ENDIF
  3919.  
  3920. ;
  3921. ; pascal VideoDigitizerError VDResetCompressSequence(VideoDigitizerComponent ci)
  3922. ;
  3923.     IF ¬ GENERATINGCFM THEN
  3924.         Macro
  3925.         _VDResetCompressSequence
  3926.             dc.w     $2F3C
  3927.             dc.w     $0000
  3928.             dc.w     $0049
  3929.             moveq    #0,d0
  3930.             dc.w     $A82A
  3931.         EndM
  3932.     ELSE
  3933.         IMPORT    VDResetCompressSequence
  3934.     ENDIF
  3935.  
  3936. ;
  3937. ; pascal VideoDigitizerError VDSetCompressionOnOff(VideoDigitizerComponent ci, Boolean state)
  3938. ;
  3939.     IF ¬ GENERATINGCFM THEN
  3940.         Macro
  3941.         _VDSetCompressionOnOff
  3942.             dc.w     $2F3C
  3943.             dc.w     $0002
  3944.             dc.w     $004A
  3945.             moveq    #0,d0
  3946.             dc.w     $A82A
  3947.         EndM
  3948.     ELSE
  3949.         IMPORT    VDSetCompressionOnOff
  3950.     ENDIF
  3951.  
  3952. ;
  3953. ; pascal VideoDigitizerError VDGetCompressionTypes(VideoDigitizerComponent ci, VDCompressionListHandle h)
  3954. ;
  3955.     IF ¬ GENERATINGCFM THEN
  3956.         Macro
  3957.         _VDGetCompressionTypes
  3958.             dc.w     $2F3C
  3959.             dc.w     $0004
  3960.             dc.w     $004B
  3961.             moveq    #0,d0
  3962.             dc.w     $A82A
  3963.         EndM
  3964.     ELSE
  3965.         IMPORT    VDGetCompressionTypes
  3966.     ENDIF
  3967.  
  3968. ;
  3969. ; pascal VideoDigitizerError VDSetTimeBase(VideoDigitizerComponent ci, TimeBase t)
  3970. ;
  3971.     IF ¬ GENERATINGCFM THEN
  3972.         Macro
  3973.         _VDSetTimeBase
  3974.             dc.w     $2F3C
  3975.             dc.w     $0004
  3976.             dc.w     $004C
  3977.             moveq    #0,d0
  3978.             dc.w     $A82A
  3979.         EndM
  3980.     ELSE
  3981.         IMPORT    VDSetTimeBase
  3982.     ENDIF
  3983.  
  3984. ;
  3985. ; pascal VideoDigitizerError VDSetFrameRate(VideoDigitizerComponent ci, Fixed framesPerSecond)
  3986. ;
  3987.     IF ¬ GENERATINGCFM THEN
  3988.         Macro
  3989.         _VDSetFrameRate
  3990.             dc.w     $2F3C
  3991.             dc.w     $0004
  3992.             dc.w     $004D
  3993.             moveq    #0,d0
  3994.             dc.w     $A82A
  3995.         EndM
  3996.     ELSE
  3997.         IMPORT    VDSetFrameRate
  3998.     ENDIF
  3999.  
  4000. ;
  4001. ; pascal VideoDigitizerError VDGetDataRate(VideoDigitizerComponent ci, long *milliSecPerFrame, Fixed *framesPerSecond, long *bytesPerSecond)
  4002. ;
  4003.     IF ¬ GENERATINGCFM THEN
  4004.         Macro
  4005.         _VDGetDataRate
  4006.             dc.w     $2F3C
  4007.             dc.w     $000C
  4008.             dc.w     $004E
  4009.             moveq    #0,d0
  4010.             dc.w     $A82A
  4011.         EndM
  4012.     ELSE
  4013.         IMPORT    VDGetDataRate
  4014.     ENDIF
  4015.  
  4016. ;
  4017. ; pascal VideoDigitizerError VDGetSoundInputDriver(VideoDigitizerComponent ci, Str255 soundDriverName)
  4018. ;
  4019.     IF ¬ GENERATINGCFM THEN
  4020.         Macro
  4021.         _VDGetSoundInputDriver
  4022.             dc.w     $2F3C
  4023.             dc.w     $0004
  4024.             dc.w     $004F
  4025.             moveq    #0,d0
  4026.             dc.w     $A82A
  4027.         EndM
  4028.     ELSE
  4029.         IMPORT    VDGetSoundInputDriver
  4030.     ENDIF
  4031.  
  4032. ;
  4033. ; pascal VideoDigitizerError VDGetDMADepths(VideoDigitizerComponent ci, long *depthArray, long *preferredDepth)
  4034. ;
  4035.     IF ¬ GENERATINGCFM THEN
  4036.         Macro
  4037.         _VDGetDMADepths
  4038.             dc.w     $2F3C
  4039.             dc.w     $0008
  4040.             dc.w     $0050
  4041.             moveq    #0,d0
  4042.             dc.w     $A82A
  4043.         EndM
  4044.     ELSE
  4045.         IMPORT    VDGetDMADepths
  4046.     ENDIF
  4047.  
  4048. ;
  4049. ; pascal VideoDigitizerError VDGetPreferredTimeScale(VideoDigitizerComponent ci, TimeScale *preferred)
  4050. ;
  4051.     IF ¬ GENERATINGCFM THEN
  4052.         Macro
  4053.         _VDGetPreferredTimeScale
  4054.             dc.w     $2F3C
  4055.             dc.w     $0004
  4056.             dc.w     $0051
  4057.             moveq    #0,d0
  4058.             dc.w     $A82A
  4059.         EndM
  4060.     ELSE
  4061.         IMPORT    VDGetPreferredTimeScale
  4062.     ENDIF
  4063.  
  4064. ;
  4065. ; pascal VideoDigitizerError VDReleaseAsyncBuffers(VideoDigitizerComponent ci)
  4066. ;
  4067.     IF ¬ GENERATINGCFM THEN
  4068.         Macro
  4069.         _VDReleaseAsyncBuffers
  4070.             dc.w     $2F3C
  4071.             dc.w     $0000
  4072.             dc.w     $0052
  4073.             moveq    #0,d0
  4074.             dc.w     $A82A
  4075.         EndM
  4076.     ELSE
  4077.         IMPORT    VDReleaseAsyncBuffers
  4078.     ENDIF
  4079.  
  4080. ; 83 is reserved for compatibility reasons 
  4081. ;
  4082. ; pascal VideoDigitizerError VDSetDataRate(VideoDigitizerComponent ci, long bytesPerSecond)
  4083. ;
  4084.     IF ¬ GENERATINGCFM THEN
  4085.         Macro
  4086.         _VDSetDataRate
  4087.             dc.w     $2F3C
  4088.             dc.w     $0004
  4089.             dc.w     $0054
  4090.             moveq    #0,d0
  4091.             dc.w     $A82A
  4092.         EndM
  4093.     ELSE
  4094.         IMPORT    VDSetDataRate
  4095.     ENDIF
  4096.  
  4097. ;
  4098. ; pascal VideoDigitizerError VDGetTimeCode(VideoDigitizerComponent ci, TimeRecord *atTime, void *timeCodeFormat, void *timeCodeTime)
  4099. ;
  4100.     IF ¬ GENERATINGCFM THEN
  4101.         Macro
  4102.         _VDGetTimeCode
  4103.             dc.w     $2F3C
  4104.             dc.w     $000C
  4105.             dc.w     $0055
  4106.             moveq    #0,d0
  4107.             dc.w     $A82A
  4108.         EndM
  4109.     ELSE
  4110.         IMPORT    VDGetTimeCode
  4111.     ENDIF
  4112.  
  4113. ;
  4114. ; pascal VideoDigitizerError VDUseSafeBuffers(VideoDigitizerComponent ci, Boolean useSafeBuffers)
  4115. ;
  4116.     IF ¬ GENERATINGCFM THEN
  4117.         Macro
  4118.         _VDUseSafeBuffers
  4119.             dc.w     $2F3C
  4120.             dc.w     $0002
  4121.             dc.w     $0056
  4122.             moveq    #0,d0
  4123.             dc.w     $A82A
  4124.         EndM
  4125.     ELSE
  4126.         IMPORT    VDUseSafeBuffers
  4127.     ENDIF
  4128.  
  4129. ;
  4130. ; pascal VideoDigitizerError VDGetSoundInputSource(VideoDigitizerComponent ci, long videoInput, long *soundInput)
  4131. ;
  4132.     IF ¬ GENERATINGCFM THEN
  4133.         Macro
  4134.         _VDGetSoundInputSource
  4135.             dc.w     $2F3C
  4136.             dc.w     $0008
  4137.             dc.w     $0057
  4138.             moveq    #0,d0
  4139.             dc.w     $A82A
  4140.         EndM
  4141.     ELSE
  4142.         IMPORT    VDGetSoundInputSource
  4143.     ENDIF
  4144.  
  4145. ;
  4146. ; pascal VideoDigitizerError VDGetCompressionTime(VideoDigitizerComponent ci, OSType compressionType, short depth, Rect *srcRect, CodecQ *spatialQuality, CodecQ *temporalQuality, unsigned long *compressTime)
  4147. ;
  4148.     IF ¬ GENERATINGCFM THEN
  4149.         Macro
  4150.         _VDGetCompressionTime
  4151.             dc.w     $2F3C
  4152.             dc.w     $0016
  4153.             dc.w     $0058
  4154.             moveq    #0,d0
  4155.             dc.w     $A82A
  4156.         EndM
  4157.     ELSE
  4158.         IMPORT    VDGetCompressionTime
  4159.     ENDIF
  4160.  
  4161. kSelectVDGetMaxSrcRect            EQU        $1
  4162. kSelectVDGetActiveSrcRect        EQU        $2
  4163. kSelectVDSetDigitizerRect        EQU        $3
  4164. kSelectVDGetDigitizerRect        EQU        $4
  4165. kSelectVDGetVBlankRect            EQU        $5
  4166. kSelectVDGetMaskPixMap            EQU        $6
  4167. kSelectVDGetPlayThruDestination    EQU        $8
  4168. kSelectVDUseThisCLUT            EQU        $9
  4169. kSelectVDSetInputGammaValue        EQU        $A
  4170. kSelectVDGetInputGammaValue        EQU        $B
  4171. kSelectVDSetBrightness            EQU        $C
  4172. kSelectVDGetBrightness            EQU        $D
  4173. kSelectVDSetContrast            EQU        $E
  4174. kSelectVDSetHue                    EQU        $F
  4175. kSelectVDSetSharpness            EQU        $10
  4176. kSelectVDSetSaturation            EQU        $11
  4177. kSelectVDGetContrast            EQU        $12
  4178. kSelectVDGetHue                    EQU        $13
  4179. kSelectVDGetSharpness            EQU        $14
  4180. kSelectVDGetSaturation            EQU        $15
  4181. kSelectVDGrabOneFrame            EQU        $16
  4182. kSelectVDGetMaxAuxBuffer        EQU        $17
  4183. kSelectVDGetDigitizerInfo        EQU        $19
  4184. kSelectVDGetCurrentFlags        EQU        $1A
  4185. kSelectVDSetKeyColor            EQU        $1B
  4186. kSelectVDGetKeyColor            EQU        $1C
  4187. kSelectVDAddKeyColor            EQU        $1D
  4188. kSelectVDGetNextKeyColor        EQU        $1E
  4189. kSelectVDSetKeyColorRange        EQU        $1F
  4190. kSelectVDGetKeyColorRange        EQU        $20
  4191. kSelectVDSetDigitizerUserInterrupt EQU        $21
  4192. kSelectVDSetInputColorSpaceMode    EQU        $22
  4193. kSelectVDGetInputColorSpaceMode    EQU        $23
  4194. kSelectVDSetClipState            EQU        $24
  4195. kSelectVDGetClipState            EQU        $25
  4196. kSelectVDSetClipRgn                EQU        $26
  4197. kSelectVDClearClipRgn            EQU        $27
  4198. kSelectVDGetCLUTInUse            EQU        $28
  4199. kSelectVDSetPLLFilterType        EQU        $29
  4200. kSelectVDGetPLLFilterType        EQU        $2A
  4201. kSelectVDGetMaskandValue        EQU        $2B
  4202. kSelectVDSetMasterBlendLevel    EQU        $2C
  4203. kSelectVDSetPlayThruDestination    EQU        $2D
  4204. kSelectVDSetPlayThruOnOff        EQU        $2E
  4205. kSelectVDSetFieldPreference        EQU        $2F
  4206. kSelectVDGetFieldPreference        EQU        $30
  4207. kSelectVDPreflightDestination    EQU        $32
  4208. kSelectVDPreflightGlobalRect    EQU        $33
  4209. kSelectVDSetPlayThruGlobalRect    EQU        $34
  4210. kSelectVDSetInputGammaRecord    EQU        $35
  4211. kSelectVDGetInputGammaRecord    EQU        $36
  4212. kSelectVDSetBlackLevelValue        EQU        $37
  4213. kSelectVDGetBlackLevelValue        EQU        $38
  4214. kSelectVDSetWhiteLevelValue        EQU        $39
  4215. kSelectVDGetWhiteLevelValue        EQU        $3A
  4216. kSelectVDGetVideoDefaults        EQU        $3B
  4217. kSelectVDGetNumberOfInputs        EQU        $3C
  4218. kSelectVDGetInputFormat            EQU        $3D
  4219. kSelectVDSetInput                EQU        $3E
  4220. kSelectVDGetInput                EQU        $3F
  4221. kSelectVDSetInputStandard        EQU        $40
  4222. kSelectVDSetupBuffers            EQU        $41
  4223. kSelectVDGrabOneFrameAsync        EQU        $42
  4224. kSelectVDDone                    EQU        $43
  4225. kSelectVDSetCompression            EQU        $44
  4226. kSelectVDCompressOneFrameAsync    EQU        $45
  4227. kSelectVDCompressDone            EQU        $46
  4228. kSelectVDReleaseCompressBuffer    EQU        $47
  4229. kSelectVDGetImageDescription    EQU        $48
  4230. kSelectVDResetCompressSequence    EQU        $49
  4231. kSelectVDSetCompressionOnOff    EQU        $4A
  4232. kSelectVDGetCompressionTypes    EQU        $4B
  4233. kSelectVDSetTimeBase            EQU        $4C
  4234. kSelectVDSetFrameRate            EQU        $4D
  4235. kSelectVDGetDataRate            EQU        $4E
  4236. kSelectVDGetSoundInputDriver    EQU        $4F
  4237. kSelectVDGetDMADepths            EQU        $50
  4238. kSelectVDGetPreferredTimeScale    EQU        $51
  4239. kSelectVDReleaseAsyncBuffers    EQU        $52
  4240. kSelectVDSetDataRate            EQU        $54
  4241. kSelectVDGetTimeCode            EQU        $55
  4242. kSelectVDUseSafeBuffers            EQU        $56
  4243. kSelectVDGetSoundInputSource    EQU        $57
  4244. kSelectVDGetCompressionTime        EQU        $58
  4245.  
  4246. StandardCompressionType            EQU        'scdi'
  4247. StandardCompressionSubType        EQU        'imag'
  4248.  
  4249. scListEveryCodec                EQU        1 << 1
  4250. scAllowZeroFrameRate            EQU        1 << 2
  4251. scAllowZeroKeyFrameRate            EQU        1 << 3
  4252. scShowBestDepth                    EQU        1 << 4
  4253. scUseMovableModal                EQU        1 << 5
  4254.  
  4255. ;    Possible test flags for setting test image.
  4256. scPreferCropping                EQU        1 << 0
  4257. scPreferScaling                    EQU        1 << 1
  4258. scPreferScalingAndCropping        EQU        scPreferScaling | scPreferCropping
  4259.  
  4260. ;    Dimensions of the image preview box.
  4261. scTestImageWidth                EQU        80
  4262. scTestImageHeight                EQU        80
  4263.  
  4264. ;    Possible items returned by hookProc.
  4265. scOKItem                        EQU        1
  4266. scCancelItem                    EQU        2
  4267. scCustomItem                    EQU        3
  4268.  
  4269. ;    Result returned when user cancelled.
  4270. scUserCancelled                    EQU        1
  4271.  
  4272. SCSpatialSettings         RECORD    0
  4273. codecType                 ds.l    1
  4274. codec                     ds.l    1
  4275. depth                     ds.w    1
  4276. spatialQuality             ds.l    1
  4277. sizeof                     EQU    *
  4278.                         ENDR
  4279.  
  4280. ; typedef struct SCSpatialSettings  SCSpatialSettings
  4281. SCTemporalSettings         RECORD    0
  4282. temporalQuality             ds.l    1
  4283. frameRate                 ds.l    1
  4284. keyFrameRate             ds.l    1
  4285. sizeof                     EQU    *
  4286.                         ENDR
  4287.  
  4288. ; typedef struct SCTemporalSettings  SCTemporalSettings
  4289. SCDataRateSettings         RECORD    0
  4290. dataRate                 ds.l    1
  4291. frameDuration             ds.l    1
  4292. minSpatialQuality         ds.l    1
  4293. minTemporalQuality         ds.l    1
  4294. sizeof                     EQU    *
  4295.                         ENDR
  4296.  
  4297. ; typedef struct SCDataRateSettings  SCDataRateSettings
  4298. SCExtendedProcs         RECORD    0
  4299. filterProc                 ds.l    1
  4300. hookProc                 ds.l    1
  4301. refcon                     ds.l    1
  4302. customName                 ds.l    8
  4303. sizeof                     EQU    *
  4304.                         ENDR
  4305.  
  4306. ; typedef struct SCExtendedProcs  SCExtendedProcs
  4307. ;    Get/SetInfo selectors
  4308.  
  4309. scSpatialSettingsType            EQU        'sptl'                ; pointer to SCSpatialSettings struct
  4310. scTemporalSettingsType            EQU        'tprl'                ; pointer to SCTemporalSettings struct
  4311. scDataRateSettingsType            EQU        'drat'                ; pointer to SCDataRateSettings struct
  4312. scColorTableType                EQU        'clut'                ; pointer to CTabHandle
  4313. scProgressProcType                EQU        'prog'                ; pointer to ProgressRecord struct
  4314. scExtendedProcsType                EQU        'xprc'                ; pointer to SCExtendedProcs struct
  4315. scPreferenceFlagsType            EQU        'pref'                ; pointer to long
  4316. scSettingsStateType                EQU        'ssta'                ; pointer to Handle
  4317. scSequenceIDType                EQU        'sequ'                ; pointer to ImageSequence
  4318. scWindowPositionType            EQU        'wndw'                ; pointer to Point
  4319. scCodecFlagsType                EQU        'cflg'                ; pointer to CodecFlags
  4320. scCodecSettingsType                EQU        'cdec'                ; pointer to Handle
  4321. scForceKeyValueType                EQU        'ksim'
  4322.  
  4323. ;    scTypeNotFoundErr returned by Get/SetInfo when type cannot be found.
  4324. ;* These are Progress procedures *
  4325. ;
  4326. ; pascal ComponentResult SCPositionRect(ComponentInstance ci, Rect *rp, Point *where)
  4327. ;
  4328.     IF ¬ GENERATINGCFM THEN
  4329.         Macro
  4330.         _SCPositionRect
  4331.             dc.w     $2F3C
  4332.             dc.w     $0008
  4333.             dc.w     $0002
  4334.             moveq    #0,d0
  4335.             dc.w     $A82A
  4336.         EndM
  4337.     ELSE
  4338.         IMPORT    SCPositionRect
  4339.     ENDIF
  4340.  
  4341. ;
  4342. ; pascal ComponentResult SCPositionDialog(ComponentInstance ci, short id, Point *where)
  4343. ;
  4344.     IF ¬ GENERATINGCFM THEN
  4345.         Macro
  4346.         _SCPositionDialog
  4347.             dc.w     $2F3C
  4348.             dc.w     $0006
  4349.             dc.w     $0003
  4350.             moveq    #0,d0
  4351.             dc.w     $A82A
  4352.         EndM
  4353.     ELSE
  4354.         IMPORT    SCPositionDialog
  4355.     ENDIF
  4356.  
  4357. ;
  4358. ; pascal ComponentResult SCSetTestImagePictHandle(ComponentInstance ci, PicHandle testPict, Rect *testRect, short testFlags)
  4359. ;
  4360.     IF ¬ GENERATINGCFM THEN
  4361.         Macro
  4362.         _SCSetTestImagePictHandle
  4363.             dc.w     $2F3C
  4364.             dc.w     $000A
  4365.             dc.w     $0004
  4366.             moveq    #0,d0
  4367.             dc.w     $A82A
  4368.         EndM
  4369.     ELSE
  4370.         IMPORT    SCSetTestImagePictHandle
  4371.     ENDIF
  4372.  
  4373. ;
  4374. ; pascal ComponentResult SCSetTestImagePictFile(ComponentInstance ci, short testFileRef, Rect *testRect, short testFlags)
  4375. ;
  4376.     IF ¬ GENERATINGCFM THEN
  4377.         Macro
  4378.         _SCSetTestImagePictFile
  4379.             dc.w     $2F3C
  4380.             dc.w     $0008
  4381.             dc.w     $0005
  4382.             moveq    #0,d0
  4383.             dc.w     $A82A
  4384.         EndM
  4385.     ELSE
  4386.         IMPORT    SCSetTestImagePictFile
  4387.     ENDIF
  4388.  
  4389. ;
  4390. ; pascal ComponentResult SCSetTestImagePixMap(ComponentInstance ci, PixMapHandle testPixMap, Rect *testRect, short testFlags)
  4391. ;
  4392.     IF ¬ GENERATINGCFM THEN
  4393.         Macro
  4394.         _SCSetTestImagePixMap
  4395.             dc.w     $2F3C
  4396.             dc.w     $000A
  4397.             dc.w     $0006
  4398.             moveq    #0,d0
  4399.             dc.w     $A82A
  4400.         EndM
  4401.     ELSE
  4402.         IMPORT    SCSetTestImagePixMap
  4403.     ENDIF
  4404.  
  4405. ;
  4406. ; pascal ComponentResult SCGetBestDeviceRect(ComponentInstance ci, Rect *r)
  4407. ;
  4408.     IF ¬ GENERATINGCFM THEN
  4409.         Macro
  4410.         _SCGetBestDeviceRect
  4411.             dc.w     $2F3C
  4412.             dc.w     $0004
  4413.             dc.w     $0007
  4414.             moveq    #0,d0
  4415.             dc.w     $A82A
  4416.         EndM
  4417.     ELSE
  4418.         IMPORT    SCGetBestDeviceRect
  4419.     ENDIF
  4420.  
  4421. ;
  4422. ; pascal ComponentResult SCRequestImageSettings(ComponentInstance ci)
  4423. ;
  4424.     IF ¬ GENERATINGCFM THEN
  4425.         Macro
  4426.         _SCRequestImageSettings
  4427.             dc.w     $2F3C
  4428.             dc.w     $0000
  4429.             dc.w     $000A
  4430.             moveq    #0,d0
  4431.             dc.w     $A82A
  4432.         EndM
  4433.     ELSE
  4434.         IMPORT    SCRequestImageSettings
  4435.     ENDIF
  4436.  
  4437. ;
  4438. ; pascal ComponentResult SCCompressImage(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, ImageDescriptionHandle *desc, Handle *data)
  4439. ;
  4440.     IF ¬ GENERATINGCFM THEN
  4441.         Macro
  4442.         _SCCompressImage
  4443.             dc.w     $2F3C
  4444.             dc.w     $0010
  4445.             dc.w     $000B
  4446.             moveq    #0,d0
  4447.             dc.w     $A82A
  4448.         EndM
  4449.     ELSE
  4450.         IMPORT    SCCompressImage
  4451.     ENDIF
  4452.  
  4453. ;
  4454. ; pascal ComponentResult SCCompressPicture(ComponentInstance ci, PicHandle srcPicture, PicHandle dstPicture)
  4455. ;
  4456.     IF ¬ GENERATINGCFM THEN
  4457.         Macro
  4458.         _SCCompressPicture
  4459.             dc.w     $2F3C
  4460.             dc.w     $0008
  4461.             dc.w     $000C
  4462.             moveq    #0,d0
  4463.             dc.w     $A82A
  4464.         EndM
  4465.     ELSE
  4466.         IMPORT    SCCompressPicture
  4467.     ENDIF
  4468.  
  4469. ;
  4470. ; pascal ComponentResult SCCompressPictureFile(ComponentInstance ci, short srcRefNum, short dstRefNum)
  4471. ;
  4472.     IF ¬ GENERATINGCFM THEN
  4473.         Macro
  4474.         _SCCompressPictureFile
  4475.             dc.w     $2F3C
  4476.             dc.w     $0004
  4477.             dc.w     $000D
  4478.             moveq    #0,d0
  4479.             dc.w     $A82A
  4480.         EndM
  4481.     ELSE
  4482.         IMPORT    SCCompressPictureFile
  4483.     ENDIF
  4484.  
  4485. ;
  4486. ; pascal ComponentResult SCRequestSequenceSettings(ComponentInstance ci)
  4487. ;
  4488.     IF ¬ GENERATINGCFM THEN
  4489.         Macro
  4490.         _SCRequestSequenceSettings
  4491.             dc.w     $2F3C
  4492.             dc.w     $0000
  4493.             dc.w     $000E
  4494.             moveq    #0,d0
  4495.             dc.w     $A82A
  4496.         EndM
  4497.     ELSE
  4498.         IMPORT    SCRequestSequenceSettings
  4499.     ENDIF
  4500.  
  4501. ;
  4502. ; pascal ComponentResult SCCompressSequenceBegin(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, ImageDescriptionHandle *desc)
  4503. ;
  4504.     IF ¬ GENERATINGCFM THEN
  4505.         Macro
  4506.         _SCCompressSequenceBegin
  4507.             dc.w     $2F3C
  4508.             dc.w     $000C
  4509.             dc.w     $000F
  4510.             moveq    #0,d0
  4511.             dc.w     $A82A
  4512.         EndM
  4513.     ELSE
  4514.         IMPORT    SCCompressSequenceBegin
  4515.     ENDIF
  4516.  
  4517. ;
  4518. ; pascal ComponentResult SCCompressSequenceFrame(ComponentInstance ci, PixMapHandle src, const Rect *srcRect, Handle *data, long *dataSize, short *notSyncFlag)
  4519. ;
  4520.     IF ¬ GENERATINGCFM THEN
  4521.         Macro
  4522.         _SCCompressSequenceFrame
  4523.             dc.w     $2F3C
  4524.             dc.w     $0014
  4525.             dc.w     $0010
  4526.             moveq    #0,d0
  4527.             dc.w     $A82A
  4528.         EndM
  4529.     ELSE
  4530.         IMPORT    SCCompressSequenceFrame
  4531.     ENDIF
  4532.  
  4533. ;
  4534. ; pascal ComponentResult SCCompressSequenceEnd(ComponentInstance ci)
  4535. ;
  4536.     IF ¬ GENERATINGCFM THEN
  4537.         Macro
  4538.         _SCCompressSequenceEnd
  4539.             dc.w     $2F3C
  4540.             dc.w     $0000
  4541.             dc.w     $0011
  4542.             moveq    #0,d0
  4543.             dc.w     $A82A
  4544.         EndM
  4545.     ELSE
  4546.         IMPORT    SCCompressSequenceEnd
  4547.     ENDIF
  4548.  
  4549. ;
  4550. ; pascal ComponentResult SCDefaultPictHandleSettings(ComponentInstance ci, PicHandle srcPicture, short motion)
  4551. ;
  4552.     IF ¬ GENERATINGCFM THEN
  4553.         Macro
  4554.         _SCDefaultPictHandleSettings
  4555.             dc.w     $2F3C
  4556.             dc.w     $0006
  4557.             dc.w     $0012
  4558.             moveq    #0,d0
  4559.             dc.w     $A82A
  4560.         EndM
  4561.     ELSE
  4562.         IMPORT    SCDefaultPictHandleSettings
  4563.     ENDIF
  4564.  
  4565. ;
  4566. ; pascal ComponentResult SCDefaultPictFileSettings(ComponentInstance ci, short srcRef, short motion)
  4567. ;
  4568.     IF ¬ GENERATINGCFM THEN
  4569.         Macro
  4570.         _SCDefaultPictFileSettings
  4571.             dc.w     $2F3C
  4572.             dc.w     $0004
  4573.             dc.w     $0013
  4574.             moveq    #0,d0
  4575.             dc.w     $A82A
  4576.         EndM
  4577.     ELSE
  4578.         IMPORT    SCDefaultPictFileSettings
  4579.     ENDIF
  4580.  
  4581. ;
  4582. ; pascal ComponentResult SCDefaultPixMapSettings(ComponentInstance ci, PixMapHandle src, short motion)
  4583. ;
  4584.     IF ¬ GENERATINGCFM THEN
  4585.         Macro
  4586.         _SCDefaultPixMapSettings
  4587.             dc.w     $2F3C
  4588.             dc.w     $0006
  4589.             dc.w     $0014
  4590.             moveq    #0,d0
  4591.             dc.w     $A82A
  4592.         EndM
  4593.     ELSE
  4594.         IMPORT    SCDefaultPixMapSettings
  4595.     ENDIF
  4596.  
  4597. ;
  4598. ; pascal ComponentResult SCGetInfo(ComponentInstance ci, OSType infoType, void *info)
  4599. ;
  4600.     IF ¬ GENERATINGCFM THEN
  4601.         Macro
  4602.         _SCGetInfo
  4603.             dc.w     $2F3C
  4604.             dc.w     $0008
  4605.             dc.w     $0015
  4606.             moveq    #0,d0
  4607.             dc.w     $A82A
  4608.         EndM
  4609.     ELSE
  4610.         IMPORT    SCGetInfo
  4611.     ENDIF
  4612.  
  4613. ;
  4614. ; pascal ComponentResult SCSetInfo(ComponentInstance ci, OSType infoType, void *info)
  4615. ;
  4616.     IF ¬ GENERATINGCFM THEN
  4617.         Macro
  4618.         _SCSetInfo
  4619.             dc.w     $2F3C
  4620.             dc.w     $0008
  4621.             dc.w     $0016
  4622.             moveq    #0,d0
  4623.             dc.w     $A82A
  4624.         EndM
  4625.     ELSE
  4626.         IMPORT    SCSetInfo
  4627.     ENDIF
  4628.  
  4629. ;
  4630. ; pascal ComponentResult SCNewGWorld(ComponentInstance ci, GWorldPtr *gwp, Rect *rp, GWorldFlags flags)
  4631. ;
  4632.     IF ¬ GENERATINGCFM THEN
  4633.         Macro
  4634.         _SCNewGWorld
  4635.             dc.w     $2F3C
  4636.             dc.w     $000C
  4637.             dc.w     $0017
  4638.             moveq    #0,d0
  4639.             dc.w     $A82A
  4640.         EndM
  4641.     ELSE
  4642.         IMPORT    SCNewGWorld
  4643.     ENDIF
  4644.  
  4645. ;
  4646. ; pascal ComponentResult SCSetCompressFlags(ComponentInstance ci, long flags)
  4647. ;
  4648.     IF ¬ GENERATINGCFM THEN
  4649.         Macro
  4650.         _SCSetCompressFlags
  4651.             dc.w     $2F3C
  4652.             dc.w     $0004
  4653.             dc.w     $0018
  4654.             moveq    #0,d0
  4655.             dc.w     $A82A
  4656.         EndM
  4657.     ELSE
  4658.         IMPORT    SCSetCompressFlags
  4659.     ENDIF
  4660.  
  4661. ;
  4662. ; pascal ComponentResult SCGetCompressFlags(ComponentInstance ci, long *flags)
  4663. ;
  4664.     IF ¬ GENERATINGCFM THEN
  4665.         Macro
  4666.         _SCGetCompressFlags
  4667.             dc.w     $2F3C
  4668.             dc.w     $0004
  4669.             dc.w     $0019
  4670.             moveq    #0,d0
  4671.             dc.w     $A82A
  4672.         EndM
  4673.     ELSE
  4674.         IMPORT    SCGetCompressFlags
  4675.     ENDIF
  4676.  
  4677. SCParams                 RECORD    0
  4678. flags                     ds.l    1
  4679. theCodecType             ds.l    1
  4680. theCodec                 ds.l    1
  4681. spatialQuality             ds.l    1
  4682. temporalQuality             ds.l    1
  4683. depth                     ds.w    1
  4684. frameRate                 ds.l    1
  4685. keyFrameRate             ds.l    1
  4686. reserved1                 ds.l    1
  4687. reserved2                 ds.l    1
  4688. sizeof                     EQU    *
  4689.                         ENDR
  4690.  
  4691. ; typedef struct SCParams     SCParams
  4692.  
  4693. scGetCompression                EQU        1
  4694. scShowMotionSettings            EQU        1 << 0
  4695. scSettingsChangedItem            EQU        -1
  4696.  
  4697. scCompressFlagIgnoreIdenticalFrames EQU        1
  4698.  
  4699. ;
  4700. ; pascal ComponentResult SCGetCompressionExtended(ComponentInstance ci, SCParams *params, Point where, SCModalFilterUPP filterProc, SCModalHookUPP hookProc, long refcon, StringPtr customName)
  4701. ;
  4702.     IF ¬ GENERATINGCFM THEN
  4703.         Macro
  4704.         _SCGetCompressionExtended
  4705.             dc.w     $2F3C
  4706.             dc.w     $0018
  4707.             dc.w     $0001
  4708.             moveq    #0,d0
  4709.             dc.w     $A82A
  4710.         EndM
  4711.     ELSE
  4712.         IMPORT    SCGetCompressionExtended
  4713.     ENDIF
  4714.  
  4715. kSCPositionRectSelect            EQU        $2
  4716. kSCPositionDialogSelect            EQU        $3
  4717. kSCSetTestImagePictHandleSelect    EQU        $4
  4718. kSCSetTestImagePictFileSelect    EQU        $5
  4719. kSCSetTestImagePixMapSelect        EQU        $6
  4720. kSCGetBestDeviceRectSelect        EQU        $7
  4721. kSCRequestImageSettingsSelect    EQU        $A
  4722. kSCCompressImageSelect            EQU        $B
  4723. kSCCompressPictureSelect        EQU        $C
  4724. kSCCompressPictureFileSelect    EQU        $D
  4725. kSCRequestSequenceSettingsSelect EQU        $E
  4726. kSCCompressSequenceBeginSelect    EQU        $F
  4727. kSCCompressSequenceFrameSelect    EQU        $10
  4728. kSCCompressSequenceEndSelect    EQU        $11
  4729. kSCDefaultPictHandleSettingsSelect EQU        $12
  4730. kSCDefaultPictFileSettingsSelect EQU        $13
  4731. kSCDefaultPixMapSettingsSelect    EQU        $14
  4732. kSCGetInfoSelect                EQU        $15
  4733. kSCSetInfoSelect                EQU        $16
  4734. kSCNewGWorldSelect                EQU        $17
  4735. kSCSetCompressFlagsSelect        EQU        $18
  4736. kSCGetCompressFlagsSelect        EQU        $19
  4737. kSCGetCompressionExtendedSelect    EQU        $1
  4738.  
  4739. ; typedef ComponentInstance  MovieImportComponent, MovieExportComponent
  4740.  
  4741. MovieImportType                    EQU        'eat '
  4742. MovieExportType                    EQU        'spit'
  4743.  
  4744. canMovieImportHandles            EQU        1 << 0
  4745. canMovieImportFiles                EQU        1 << 1
  4746. hasMovieImportUserInterface        EQU        1 << 2
  4747. canMovieExportHandles            EQU        1 << 3
  4748. canMovieExportFiles                EQU        1 << 4
  4749. hasMovieExportUserInterface        EQU        1 << 5
  4750. dontAutoFileMovieImport            EQU        1 << 6
  4751. canMovieExportAuxDataHandle        EQU        1 << 7
  4752. canMovieImportValidateHandles    EQU        1 << 8
  4753. canMovieImportValidateFile        EQU        1 << 9
  4754. dontRegisterWithEasyOpen        EQU        1 << 10
  4755. canMovieImportInPlace            EQU        1 << 11
  4756. movieImportSubTypeIsFileExtension EQU        1 << 12
  4757.  
  4758. kMovieImportExportOpenSelect    EQU        kComponentOpenSelect
  4759. kMovieImportExportCloseSelect    EQU        kComponentCloseSelect
  4760. kMovieImportExportCanDoSelect    EQU        kComponentCanDoSelect
  4761. kMovieImportExportVersionSelect    EQU        kComponentVersionSelect
  4762. kMovieImportExportTargetSelect    EQU        kComponentTargetSelect
  4763. kMovieImportHandleSelect        EQU        1
  4764. kMovieImportFileSelect            EQU        2
  4765. kMovieImportSetSampleDurationSelect EQU        3
  4766. kMovieImportSetSampleDescriptionSelect EQU        4
  4767. kMovieImportSetMediaFileSelect    EQU        5
  4768. kMovieImportSetDimensionsSelect    EQU        6
  4769. kMovieImportSetChunkSizeSelect    EQU        7
  4770. kMovieImportSetProgressProcSelect EQU        8
  4771. kMovieImportSetAuxiliaryDataSelect EQU        9
  4772. kMovieImportSetFromScrapSelect    EQU        10
  4773. kMovieImportDoUserDialogSelect    EQU        11
  4774. kMovieImportSetDurationSelect    EQU        12
  4775. kMovieImportGetAuxiliaryDataTypeSelect EQU        13
  4776. kMovieImportValidateSelect        EQU        14
  4777. kMovieImportGetFileTypeSelect    EQU        15
  4778. kMovieExportToHandleSelect        EQU        128
  4779. kMovieExportToFileSelect        EQU        129
  4780. kMovieExportDoUserDialogSelectOBSOLETE EQU        130
  4781. kMovieExportGetAuxiliaryDataSelect EQU        131
  4782. kMovieExportSetProgressProcSelect EQU        132
  4783. kMovieExportSetSampleDescriptionSelect EQU        133
  4784. kMovieExportDoUserDialogSelect    EQU        134
  4785. kMovieExportGetCreatorTypeSelect EQU        135
  4786.  
  4787. movieImportCreateTrack            EQU        1
  4788. movieImportInParallel            EQU        2
  4789. movieImportMustUseTrack            EQU        4
  4790.  
  4791. movieImportResultUsedMultipleTracks EQU        8
  4792.  
  4793. kMovieExportTextOnly            EQU        0
  4794. kMovieExportAbsoluteTime        EQU        1
  4795. kMovieExportRelativeTime        EQU        2
  4796.  
  4797. ;
  4798. ; pascal ComponentResult MovieImportHandle(MovieImportComponent ci, Handle dataH, Movie theMovie, Track targetTrack, Track *usedTrack, TimeValue atTime, TimeValue *addedDuration, long inFlags, long *outFlags)
  4799. ;
  4800.     IF ¬ GENERATINGCFM THEN
  4801.         Macro
  4802.         _MovieImportHandle
  4803.             dc.w     $2F3C
  4804.             dc.w     $0020
  4805.             dc.w     $0001
  4806.             moveq    #0,d0
  4807.             dc.w     $A82A
  4808.         EndM
  4809.     ELSE
  4810.         IMPORT    MovieImportHandle
  4811.     ENDIF
  4812.  
  4813. ;
  4814. ; pascal ComponentResult MovieImportFile(MovieImportComponent ci, const FSSpec *theFile, Movie theMovie, Track targetTrack, Track *usedTrack, TimeValue atTime, TimeValue *addedDuration, long inFlags, long *outFlags)
  4815. ;
  4816.     IF ¬ GENERATINGCFM THEN
  4817.         Macro
  4818.         _MovieImportFile
  4819.             dc.w     $2F3C
  4820.             dc.w     $0020
  4821.             dc.w     $0002
  4822.             moveq    #0,d0
  4823.             dc.w     $A82A
  4824.         EndM
  4825.     ELSE
  4826.         IMPORT    MovieImportFile
  4827.     ENDIF
  4828.  
  4829. ;
  4830. ; pascal ComponentResult MovieImportSetSampleDuration(MovieImportComponent ci, TimeValue duration, TimeScale scale)
  4831. ;
  4832.     IF ¬ GENERATINGCFM THEN
  4833.         Macro
  4834.         _MovieImportSetSampleDuration
  4835.             dc.w     $2F3C
  4836.             dc.w     $0008
  4837.             dc.w     $0003
  4838.             moveq    #0,d0
  4839.             dc.w     $A82A
  4840.         EndM
  4841.     ELSE
  4842.         IMPORT    MovieImportSetSampleDuration
  4843.     ENDIF
  4844.  
  4845. ;
  4846. ; pascal ComponentResult MovieImportSetSampleDescription(MovieImportComponent ci, SampleDescriptionHandle desc, OSType mediaType)
  4847. ;
  4848.     IF ¬ GENERATINGCFM THEN
  4849.         Macro
  4850.         _MovieImportSetSampleDescription
  4851.             dc.w     $2F3C
  4852.             dc.w     $0008
  4853.             dc.w     $0004
  4854.             moveq    #0,d0
  4855.             dc.w     $A82A
  4856.         EndM
  4857.     ELSE
  4858.         IMPORT    MovieImportSetSampleDescription
  4859.     ENDIF
  4860.  
  4861. ;
  4862. ; pascal ComponentResult MovieImportSetMediaFile(MovieImportComponent ci, AliasHandle alias)
  4863. ;
  4864.     IF ¬ GENERATINGCFM THEN
  4865.         Macro
  4866.         _MovieImportSetMediaFile
  4867.             dc.w     $2F3C
  4868.             dc.w     $0004
  4869.             dc.w     $0005
  4870.             moveq    #0,d0
  4871.             dc.w     $A82A
  4872.         EndM
  4873.     ELSE
  4874.         IMPORT    MovieImportSetMediaFile
  4875.     ENDIF
  4876.  
  4877. ;
  4878. ; pascal ComponentResult MovieImportSetDimensions(MovieImportComponent ci, Fixed width, Fixed height)
  4879. ;
  4880.     IF ¬ GENERATINGCFM THEN
  4881.         Macro
  4882.         _MovieImportSetDimensions
  4883.             dc.w     $2F3C
  4884.             dc.w     $0008
  4885.             dc.w     $0006
  4886.             moveq    #0,d0
  4887.             dc.w     $A82A
  4888.         EndM
  4889.     ELSE
  4890.         IMPORT    MovieImportSetDimensions
  4891.     ENDIF
  4892.  
  4893. ;
  4894. ; pascal ComponentResult MovieImportSetChunkSize(MovieImportComponent ci, long chunkSize)
  4895. ;
  4896.     IF ¬ GENERATINGCFM THEN
  4897.         Macro
  4898.         _MovieImportSetChunkSize
  4899.             dc.w     $2F3C
  4900.             dc.w     $0004
  4901.             dc.w     $0007
  4902.             moveq    #0,d0
  4903.             dc.w     $A82A
  4904.         EndM
  4905.     ELSE
  4906.         IMPORT    MovieImportSetChunkSize
  4907.     ENDIF
  4908.  
  4909. ;
  4910. ; pascal ComponentResult MovieImportSetProgressProc(MovieImportComponent ci, MovieProgressUPP proc, long refcon)
  4911. ;
  4912.     IF ¬ GENERATINGCFM THEN
  4913.         Macro
  4914.         _MovieImportSetProgressProc
  4915.             dc.w     $2F3C
  4916.             dc.w     $0008
  4917.             dc.w     $0008
  4918.             moveq    #0,d0
  4919.             dc.w     $A82A
  4920.         EndM
  4921.     ELSE
  4922.         IMPORT    MovieImportSetProgressProc
  4923.     ENDIF
  4924.  
  4925. ;
  4926. ; pascal ComponentResult MovieImportSetAuxiliaryData(MovieImportComponent ci, Handle data, OSType handleType)
  4927. ;
  4928.     IF ¬ GENERATINGCFM THEN
  4929.         Macro
  4930.         _MovieImportSetAuxiliaryData
  4931.             dc.w     $2F3C
  4932.             dc.w     $0008
  4933.             dc.w     $0009
  4934.             moveq    #0,d0
  4935.             dc.w     $A82A
  4936.         EndM
  4937.     ELSE
  4938.         IMPORT    MovieImportSetAuxiliaryData
  4939.     ENDIF
  4940.  
  4941. ;
  4942. ; pascal ComponentResult MovieImportSetFromScrap(MovieImportComponent ci, Boolean fromScrap)
  4943. ;
  4944.     IF ¬ GENERATINGCFM THEN
  4945.         Macro
  4946.         _MovieImportSetFromScrap
  4947.             dc.w     $2F3C
  4948.             dc.w     $0002
  4949.             dc.w     $000A
  4950.             moveq    #0,d0
  4951.             dc.w     $A82A
  4952.         EndM
  4953.     ELSE
  4954.         IMPORT    MovieImportSetFromScrap
  4955.     ENDIF
  4956.  
  4957. ;
  4958. ; pascal ComponentResult MovieImportDoUserDialog(MovieImportComponent ci, const FSSpec *theFile, Handle theData, Boolean *canceled)
  4959. ;
  4960.     IF ¬ GENERATINGCFM THEN
  4961.         Macro
  4962.         _MovieImportDoUserDialog
  4963.             dc.w     $2F3C
  4964.             dc.w     $000C
  4965.             dc.w     $000B
  4966.             moveq    #0,d0
  4967.             dc.w     $A82A
  4968.         EndM
  4969.     ELSE
  4970.         IMPORT    MovieImportDoUserDialog
  4971.     ENDIF
  4972.  
  4973. ;
  4974. ; pascal ComponentResult MovieImportSetDuration(MovieImportComponent ci, TimeValue duration)
  4975. ;
  4976.     IF ¬ GENERATINGCFM THEN
  4977.         Macro
  4978.         _MovieImportSetDuration
  4979.             dc.w     $2F3C
  4980.             dc.w     $0004
  4981.             dc.w     $000C
  4982.             moveq    #0,d0
  4983.             dc.w     $A82A
  4984.         EndM
  4985.     ELSE
  4986.         IMPORT    MovieImportSetDuration
  4987.     ENDIF
  4988.  
  4989. ;
  4990. ; pascal ComponentResult MovieImportGetAuxiliaryDataType(MovieImportComponent ci, OSType *auxType)
  4991. ;
  4992.     IF ¬ GENERATINGCFM THEN
  4993.         Macro
  4994.         _MovieImportGetAuxiliaryDataType
  4995.             dc.w     $2F3C
  4996.             dc.w     $0004
  4997.             dc.w     $000D
  4998.             moveq    #0,d0
  4999.             dc.w     $A82A
  5000.         EndM
  5001.     ELSE
  5002.         IMPORT    MovieImportGetAuxiliaryDataType
  5003.     ENDIF
  5004.  
  5005. ;
  5006. ; pascal ComponentResult MovieImportValidate(MovieImportComponent ci, const FSSpec *theFile, Handle theData, Boolean *valid)
  5007. ;
  5008.     IF ¬ GENERATINGCFM THEN
  5009.         Macro
  5010.         _MovieImportValidate
  5011.             dc.w     $2F3C
  5012.             dc.w     $000C
  5013.             dc.w     $000E
  5014.             moveq    #0,d0
  5015.             dc.w     $A82A
  5016.         EndM
  5017.     ELSE
  5018.         IMPORT    MovieImportValidate
  5019.     ENDIF
  5020.  
  5021. ;
  5022. ; pascal ComponentResult MovieImportGetFileType(MovieImportComponent ci, OSType *fileType)
  5023. ;
  5024.     IF ¬ GENERATINGCFM THEN
  5025.         Macro
  5026.         _MovieImportGetFileType
  5027.             dc.w     $2F3C
  5028.             dc.w     $0004
  5029.             dc.w     $000F
  5030.             moveq    #0,d0
  5031.             dc.w     $A82A
  5032.         EndM
  5033.     ELSE
  5034.         IMPORT    MovieImportGetFileType
  5035.     ENDIF
  5036.  
  5037. ;
  5038. ; pascal ComponentResult MovieExportToHandle(MovieExportComponent ci, Handle dataH, Movie theMovie, Track onlyThisTrack, TimeValue startTime, TimeValue duration)
  5039. ;
  5040.     IF ¬ GENERATINGCFM THEN
  5041.         Macro
  5042.         _MovieExportToHandle
  5043.             dc.w     $2F3C
  5044.             dc.w     $0014
  5045.             dc.w     $0080
  5046.             moveq    #0,d0
  5047.             dc.w     $A82A
  5048.         EndM
  5049.     ELSE
  5050.         IMPORT    MovieExportToHandle
  5051.     ENDIF
  5052.  
  5053. ;
  5054. ; pascal ComponentResult MovieExportToFile(MovieExportComponent ci, const FSSpec *theFile, Movie theMovie, Track onlyThisTrack, TimeValue startTime, TimeValue duration)
  5055. ;
  5056.     IF ¬ GENERATINGCFM THEN
  5057.         Macro
  5058.         _MovieExportToFile
  5059.             dc.w     $2F3C
  5060.             dc.w     $0014
  5061.             dc.w     $0081
  5062.             moveq    #0,d0
  5063.             dc.w     $A82A
  5064.         EndM
  5065.     ELSE
  5066.         IMPORT    MovieExportToFile
  5067.     ENDIF
  5068.  
  5069. ;
  5070. ; pascal ComponentResult MovieExportGetAuxiliaryData(MovieExportComponent ci, Handle dataH, OSType *handleType)
  5071. ;
  5072.     IF ¬ GENERATINGCFM THEN
  5073.         Macro
  5074.         _MovieExportGetAuxiliaryData
  5075.             dc.w     $2F3C
  5076.             dc.w     $0008
  5077.             dc.w     $0083
  5078.             moveq    #0,d0
  5079.             dc.w     $A82A
  5080.         EndM
  5081.     ELSE
  5082.         IMPORT    MovieExportGetAuxiliaryData
  5083.     ENDIF
  5084.  
  5085. ;
  5086. ; pascal ComponentResult MovieExportSetProgressProc(MovieExportComponent ci, MovieProgressUPP proc, long refcon)
  5087. ;
  5088.     IF ¬ GENERATINGCFM THEN
  5089.         Macro
  5090.         _MovieExportSetProgressProc
  5091.             dc.w     $2F3C
  5092.             dc.w     $0008
  5093.             dc.w     $0084
  5094.             moveq    #0,d0
  5095.             dc.w     $A82A
  5096.         EndM
  5097.     ELSE
  5098.         IMPORT    MovieExportSetProgressProc
  5099.     ENDIF
  5100.  
  5101. ;
  5102. ; pascal ComponentResult MovieExportSetSampleDescription(MovieExportComponent ci, SampleDescriptionHandle desc, OSType mediaType)
  5103. ;
  5104.     IF ¬ GENERATINGCFM THEN
  5105.         Macro
  5106.         _MovieExportSetSampleDescription
  5107.             dc.w     $2F3C
  5108.             dc.w     $0008
  5109.             dc.w     $0085
  5110.             moveq    #0,d0
  5111.             dc.w     $A82A
  5112.         EndM
  5113.     ELSE
  5114.         IMPORT    MovieExportSetSampleDescription
  5115.     ENDIF
  5116.  
  5117. ;
  5118. ; pascal ComponentResult MovieExportDoUserDialog(MovieExportComponent ci, Movie theMovie, Track onlyThisTrack, TimeValue startTime, TimeValue duration, Boolean *canceled)
  5119. ;
  5120.     IF ¬ GENERATINGCFM THEN
  5121.         Macro
  5122.         _MovieExportDoUserDialog
  5123.             dc.w     $2F3C
  5124.             dc.w     $0014
  5125.             dc.w     $0086
  5126.             moveq    #0,d0
  5127.             dc.w     $A82A
  5128.         EndM
  5129.     ELSE
  5130.         IMPORT    MovieExportDoUserDialog
  5131.     ENDIF
  5132.  
  5133. ;
  5134. ; pascal ComponentResult MovieExportGetCreatorType(MovieExportComponent ci, OSType *creator)
  5135. ;
  5136.     IF ¬ GENERATINGCFM THEN
  5137.         Macro
  5138.         _MovieExportGetCreatorType
  5139.             dc.w     $2F3C
  5140.             dc.w     $0004
  5141.             dc.w     $0087
  5142.             moveq    #0,d0
  5143.             dc.w     $A82A
  5144.         EndM
  5145.     ELSE
  5146.         IMPORT    MovieExportGetCreatorType
  5147.     ENDIF
  5148.  
  5149.      IF ¬ GENERATINGPOWERPC THEN 
  5150. ; Text Export Display Info data structure
  5151. TextDisplayData         RECORD    0
  5152. displayFlags             ds.l    1
  5153. textJustification         ds.l    1
  5154. bgColor                     ds        RGBColor
  5155. textBox                     ds        Rect
  5156. beginHilite                 ds.w    1
  5157. endHilite                 ds.w    1
  5158. hiliteColor                 ds        RGBColor
  5159. doHiliteColor             ds.b    1
  5160. filler                     ds.b    1
  5161. scrollDelayDur             ds.l    1
  5162. dropShadowOffset         ds        Point
  5163. dropShadowTransparency     ds.w    1
  5164. sizeof                     EQU    *
  5165.                         ENDR
  5166.  
  5167. ; typedef struct TextDisplayData  TextDisplayData
  5168.     ENDIF
  5169. ; typedef ComponentInstance  TextExportComponent
  5170. ;
  5171. ; pascal ComponentResult TextExportGetDisplayData(TextExportComponent ci, TextDisplayData *textDisplay)
  5172. ;
  5173.     IF ¬ GENERATINGCFM THEN
  5174.         Macro
  5175.         _TextExportGetDisplayData
  5176.             dc.w     $2F3C
  5177.             dc.w     $0004
  5178.             dc.w     $0100
  5179.             moveq    #0,d0
  5180.             dc.w     $A82A
  5181.         EndM
  5182.     ELSE
  5183.         IMPORT    TextExportGetDisplayData
  5184.     ENDIF
  5185.  
  5186. ;
  5187. ; pascal ComponentResult TextExportGetTimeFraction(TextExportComponent ci, long *movieTimeFraction)
  5188. ;
  5189.     IF ¬ GENERATINGCFM THEN
  5190.         Macro
  5191.         _TextExportGetTimeFraction
  5192.             dc.w     $2F3C
  5193.             dc.w     $0004
  5194.             dc.w     $0101
  5195.             moveq    #0,d0
  5196.             dc.w     $A82A
  5197.         EndM
  5198.     ELSE
  5199.         IMPORT    TextExportGetTimeFraction
  5200.     ENDIF
  5201.  
  5202. ;
  5203. ; pascal ComponentResult TextExportSetTimeFraction(TextExportComponent ci, long movieTimeFraction)
  5204. ;
  5205.     IF ¬ GENERATINGCFM THEN
  5206.         Macro
  5207.         _TextExportSetTimeFraction
  5208.             dc.w     $2F3C
  5209.             dc.w     $0004
  5210.             dc.w     $0102
  5211.             moveq    #0,d0
  5212.             dc.w     $A82A
  5213.         EndM
  5214.     ELSE
  5215.         IMPORT    TextExportSetTimeFraction
  5216.     ENDIF
  5217.  
  5218. ;
  5219. ; pascal ComponentResult TextExportGetSettings(TextExportComponent ci, long *setting)
  5220. ;
  5221.     IF ¬ GENERATINGCFM THEN
  5222.         Macro
  5223.         _TextExportGetSettings
  5224.             dc.w     $2F3C
  5225.             dc.w     $0004
  5226.             dc.w     $0103
  5227.             moveq    #0,d0
  5228.             dc.w     $A82A
  5229.         EndM
  5230.     ELSE
  5231.         IMPORT    TextExportGetSettings
  5232.     ENDIF
  5233.  
  5234. ;
  5235. ; pascal ComponentResult TextExportSetSettings(TextExportComponent ci, long setting)
  5236. ;
  5237.     IF ¬ GENERATINGCFM THEN
  5238.         Macro
  5239.         _TextExportSetSettings
  5240.             dc.w     $2F3C
  5241.             dc.w     $0004
  5242.             dc.w     $0104
  5243.             moveq    #0,d0
  5244.             dc.w     $A82A
  5245.         EndM
  5246.     ELSE
  5247.         IMPORT    TextExportSetSettings
  5248.     ENDIF
  5249.  
  5250. ;**************
  5251. ;
  5252. ;    File Preview Components
  5253. ;
  5254. ;**************
  5255. ; typedef ComponentInstance  pnotComponent
  5256.  
  5257. pnotComponentWantsEvents        EQU        1
  5258. pnotComponentNeedsNoCache        EQU        2
  5259.  
  5260. kPreviewOpenSelector            EQU        0
  5261. kPreviewCloseSelector            EQU        -1
  5262. kPreviewCanDoSelector            EQU        -2
  5263. kPreviewVersionSelector            EQU        -3
  5264. kPreviewShowDataSelector        EQU        1
  5265. kPreviewMakePreviewSelector        EQU        2
  5266. kPreviewMakePreviewReferenceSelector EQU        3
  5267. kPreviewEventSelector            EQU        4
  5268.  
  5269. ShowFilePreviewComponentType    EQU        'pnot'
  5270. CreateFilePreviewComponentType    EQU        'pmak'
  5271.  
  5272. ;
  5273. ; pascal ComponentResult PreviewShowData(pnotComponent p, OSType dataType, Handle data, const Rect *inHere)
  5274. ;
  5275.     IF ¬ GENERATINGCFM THEN
  5276.         Macro
  5277.         _PreviewShowData
  5278.             dc.w     $2F3C
  5279.             dc.w     $000C
  5280.             dc.w     $0001
  5281.             moveq    #0,d0
  5282.             dc.w     $A82A
  5283.         EndM
  5284.     ELSE
  5285.         IMPORT    PreviewShowData
  5286.     ENDIF
  5287.  
  5288. ;
  5289. ; pascal ComponentResult PreviewMakePreview(pnotComponent p, OSType *previewType, Handle *previewResult, const FSSpec *sourceFile, ICMProgressProcRecordPtr progress)
  5290. ;
  5291.     IF ¬ GENERATINGCFM THEN
  5292.         Macro
  5293.         _PreviewMakePreview
  5294.             dc.w     $2F3C
  5295.             dc.w     $0010
  5296.             dc.w     $0002
  5297.             moveq    #0,d0
  5298.             dc.w     $A82A
  5299.         EndM
  5300.     ELSE
  5301.         IMPORT    PreviewMakePreview
  5302.     ENDIF
  5303.  
  5304. ;
  5305. ; pascal ComponentResult PreviewMakePreviewReference(pnotComponent p, OSType *previewType, short *resID, const FSSpec *sourceFile)
  5306. ;
  5307.     IF ¬ GENERATINGCFM THEN
  5308.         Macro
  5309.         _PreviewMakePreviewReference
  5310.             dc.w     $2F3C
  5311.             dc.w     $000C
  5312.             dc.w     $0003
  5313.             moveq    #0,d0
  5314.             dc.w     $A82A
  5315.         EndM
  5316.     ELSE
  5317.         IMPORT    PreviewMakePreviewReference
  5318.     ENDIF
  5319.  
  5320. ;
  5321. ; pascal ComponentResult PreviewEvent(pnotComponent p, EventRecord *e, Boolean *handledEvent)
  5322. ;
  5323.     IF ¬ GENERATINGCFM THEN
  5324.         Macro
  5325.         _PreviewEvent
  5326.             dc.w     $2F3C
  5327.             dc.w     $0008
  5328.             dc.w     $0004
  5329.             moveq    #0,d0
  5330.             dc.w     $A82A
  5331.         EndM
  5332.     ELSE
  5333.         IMPORT    PreviewEvent
  5334.     ENDIF
  5335.  
  5336. kDataHCanRead                    EQU        1 << 0
  5337. kDataHSpecialRead                EQU        1 << 1
  5338. kDataHSpecialReadFile            EQU        1 << 2
  5339. kDataHCanWrite                    EQU        1 << 3
  5340. kDataHSpecialWrite                EQU        1 << 4
  5341. kDataHSpecialWriteFile            EQU        1 << 5
  5342. kDataHCanStreamingWrite            EQU        1 << 6
  5343. kDataHMustCheckDataRef            EQU        1 << 7
  5344.  
  5345. DataHVolumeListRecord     RECORD    0
  5346. vRefNum                     ds.w    1
  5347. flags                     ds.l    1
  5348. sizeof                     EQU    *
  5349.                         ENDR
  5350.  
  5351. ; typedef struct DataHVolumeListRecord  DataHVolumeListRecord
  5352. ; typedef DataHVolumeListRecord  *DataHVolumeListPtr
  5353. ; typedef DataHVolumeListPtr  *DataHVolumeList
  5354.  
  5355. kDataHExtendedSchedule            EQU        'xtnd'
  5356.  
  5357. DataHScheduleRecord     RECORD    0
  5358. timeNeededBy             ds        TimeRecord
  5359. extendedID                 ds.l    1                                    ; always is kDataHExtendedSchedule
  5360. extendedVers             ds.l    1                                    ; always set to 0
  5361. priority                 ds.l    1                                    ; 100.0 or more means must have. lower numbers…
  5362. sizeof                     EQU    *
  5363.                         ENDR
  5364.  
  5365. ; typedef struct DataHScheduleRecord  DataHScheduleRecord
  5366. ; typedef DataHScheduleRecord  *DataHSchedulePtr
  5367. ;
  5368. ; pascal ComponentResult DataHGetData(DataHandler dh, Handle h, long hOffset, long offset, long size)
  5369. ;
  5370.     IF ¬ GENERATINGCFM THEN
  5371.         Macro
  5372.         _DataHGetData
  5373.             dc.w     $2F3C
  5374.             dc.w     $0010
  5375.             dc.w     $0002
  5376.             moveq    #0,d0
  5377.             dc.w     $A82A
  5378.         EndM
  5379.     ELSE
  5380.         IMPORT    DataHGetData
  5381.     ENDIF
  5382.  
  5383. ;
  5384. ; pascal ComponentResult DataHPutData(DataHandler dh, Handle h, long hOffset, long *offset, long size)
  5385. ;
  5386.     IF ¬ GENERATINGCFM THEN
  5387.         Macro
  5388.         _DataHPutData
  5389.             dc.w     $2F3C
  5390.             dc.w     $0010
  5391.             dc.w     $0003
  5392.             moveq    #0,d0
  5393.             dc.w     $A82A
  5394.         EndM
  5395.     ELSE
  5396.         IMPORT    DataHPutData
  5397.     ENDIF
  5398.  
  5399. ;
  5400. ; pascal ComponentResult DataHFlushData(DataHandler dh)
  5401. ;
  5402.     IF ¬ GENERATINGCFM THEN
  5403.         Macro
  5404.         _DataHFlushData
  5405.             dc.w     $2F3C
  5406.             dc.w     $0000
  5407.             dc.w     $0004
  5408.             moveq    #0,d0
  5409.             dc.w     $A82A
  5410.         EndM
  5411.     ELSE
  5412.         IMPORT    DataHFlushData
  5413.     ENDIF
  5414.  
  5415. ;
  5416. ; pascal ComponentResult DataHOpenForWrite(DataHandler dh)
  5417. ;
  5418.     IF ¬ GENERATINGCFM THEN
  5419.         Macro
  5420.         _DataHOpenForWrite
  5421.             dc.w     $2F3C
  5422.             dc.w     $0000
  5423.             dc.w     $0005
  5424.             moveq    #0,d0
  5425.             dc.w     $A82A
  5426.         EndM
  5427.     ELSE
  5428.         IMPORT    DataHOpenForWrite
  5429.     ENDIF
  5430.  
  5431. ;
  5432. ; pascal ComponentResult DataHCloseForWrite(DataHandler dh)
  5433. ;
  5434.     IF ¬ GENERATINGCFM THEN
  5435.         Macro
  5436.         _DataHCloseForWrite
  5437.             dc.w     $2F3C
  5438.             dc.w     $0000
  5439.             dc.w     $0006
  5440.             moveq    #0,d0
  5441.             dc.w     $A82A
  5442.         EndM
  5443.     ELSE
  5444.         IMPORT    DataHCloseForWrite
  5445.     ENDIF
  5446.  
  5447. ;
  5448. ; pascal ComponentResult DataHOpenForRead(DataHandler dh)
  5449. ;
  5450.     IF ¬ GENERATINGCFM THEN
  5451.         Macro
  5452.         _DataHOpenForRead
  5453.             dc.w     $2F3C
  5454.             dc.w     $0000
  5455.             dc.w     $0008
  5456.             moveq    #0,d0
  5457.             dc.w     $A82A
  5458.         EndM
  5459.     ELSE
  5460.         IMPORT    DataHOpenForRead
  5461.     ENDIF
  5462.  
  5463. ;
  5464. ; pascal ComponentResult DataHCloseForRead(DataHandler dh)
  5465. ;
  5466.     IF ¬ GENERATINGCFM THEN
  5467.         Macro
  5468.         _DataHCloseForRead
  5469.             dc.w     $2F3C
  5470.             dc.w     $0000
  5471.             dc.w     $0009
  5472.             moveq    #0,d0
  5473.             dc.w     $A82A
  5474.         EndM
  5475.     ELSE
  5476.         IMPORT    DataHCloseForRead
  5477.     ENDIF
  5478.  
  5479. ;
  5480. ; pascal ComponentResult DataHSetDataRef(DataHandler dh, Handle dataRef)
  5481. ;
  5482.     IF ¬ GENERATINGCFM THEN
  5483.         Macro
  5484.         _DataHSetDataRef
  5485.             dc.w     $2F3C
  5486.             dc.w     $0004
  5487.             dc.w     $000A
  5488.             moveq    #0,d0
  5489.             dc.w     $A82A
  5490.         EndM
  5491.     ELSE
  5492.         IMPORT    DataHSetDataRef
  5493.     ENDIF
  5494.  
  5495. ;
  5496. ; pascal ComponentResult DataHGetDataRef(DataHandler dh, Handle *dataRef)
  5497. ;
  5498.     IF ¬ GENERATINGCFM THEN
  5499.         Macro
  5500.         _DataHGetDataRef
  5501.             dc.w     $2F3C
  5502.             dc.w     $0004
  5503.             dc.w     $000B
  5504.             moveq    #0,d0
  5505.             dc.w     $A82A
  5506.         EndM
  5507.     ELSE
  5508.         IMPORT    DataHGetDataRef
  5509.     ENDIF
  5510.  
  5511. ;
  5512. ; pascal ComponentResult DataHCompareDataRef(DataHandler dh, Handle dataRef, Boolean *equal)
  5513. ;
  5514.     IF ¬ GENERATINGCFM THEN
  5515.         Macro
  5516.         _DataHCompareDataRef
  5517.             dc.w     $2F3C
  5518.             dc.w     $0008
  5519.             dc.w     $000C
  5520.             moveq    #0,d0
  5521.             dc.w     $A82A
  5522.         EndM
  5523.     ELSE
  5524.         IMPORT    DataHCompareDataRef
  5525.     ENDIF
  5526.  
  5527. ;
  5528. ; pascal ComponentResult DataHTask(DataHandler dh)
  5529. ;
  5530.     IF ¬ GENERATINGCFM THEN
  5531.         Macro
  5532.         _DataHTask
  5533.             dc.w     $2F3C
  5534.             dc.w     $0000
  5535.             dc.w     $000D
  5536.             moveq    #0,d0
  5537.             dc.w     $A82A
  5538.         EndM
  5539.     ELSE
  5540.         IMPORT    DataHTask
  5541.     ENDIF
  5542.  
  5543. ;
  5544. ; pascal ComponentResult DataHScheduleData(DataHandler dh, Ptr PlaceToPutDataPtr, long FileOffset, long DataSize, long RefCon, DataHSchedulePtr scheduleRec, DataHCompletionUPP CompletionRtn)
  5545. ;
  5546.     IF ¬ GENERATINGCFM THEN
  5547.         Macro
  5548.         _DataHScheduleData
  5549.             dc.w     $2F3C
  5550.             dc.w     $0018
  5551.             dc.w     $000E
  5552.             moveq    #0,d0
  5553.             dc.w     $A82A
  5554.         EndM
  5555.     ELSE
  5556.         IMPORT    DataHScheduleData
  5557.     ENDIF
  5558.  
  5559. ;
  5560. ; pascal ComponentResult DataHFinishData(DataHandler dh, Ptr PlaceToPutDataPtr, Boolean Cancel)
  5561. ;
  5562.     IF ¬ GENERATINGCFM THEN
  5563.         Macro
  5564.         _DataHFinishData
  5565.             dc.w     $2F3C
  5566.             dc.w     $0006
  5567.             dc.w     $000F
  5568.             moveq    #0,d0
  5569.             dc.w     $A82A
  5570.         EndM
  5571.     ELSE
  5572.         IMPORT    DataHFinishData
  5573.     ENDIF
  5574.  
  5575. ;
  5576. ; pascal ComponentResult DataHFlushCache(DataHandler dh)
  5577. ;
  5578.     IF ¬ GENERATINGCFM THEN
  5579.         Macro
  5580.         _DataHFlushCache
  5581.             dc.w     $2F3C
  5582.             dc.w     $0000
  5583.             dc.w     $0010
  5584.             moveq    #0,d0
  5585.             dc.w     $A82A
  5586.         EndM
  5587.     ELSE
  5588.         IMPORT    DataHFlushCache
  5589.     ENDIF
  5590.  
  5591. ;
  5592. ; pascal ComponentResult DataHResolveDataRef(DataHandler dh, Handle theDataRef, Boolean *wasChanged, Boolean userInterfaceAllowed)
  5593. ;
  5594.     IF ¬ GENERATINGCFM THEN
  5595.         Macro
  5596.         _DataHResolveDataRef
  5597.             dc.w     $2F3C
  5598.             dc.w     $000A
  5599.             dc.w     $0011
  5600.             moveq    #0,d0
  5601.             dc.w     $A82A
  5602.         EndM
  5603.     ELSE
  5604.         IMPORT    DataHResolveDataRef
  5605.     ENDIF
  5606.  
  5607. ;
  5608. ; pascal ComponentResult DataHGetFileSize(DataHandler dh, long *fileSize)
  5609. ;
  5610.     IF ¬ GENERATINGCFM THEN
  5611.         Macro
  5612.         _DataHGetFileSize
  5613.             dc.w     $2F3C
  5614.             dc.w     $0004
  5615.             dc.w     $0012
  5616.             moveq    #0,d0
  5617.             dc.w     $A82A
  5618.         EndM
  5619.     ELSE
  5620.         IMPORT    DataHGetFileSize
  5621.     ENDIF
  5622.  
  5623. ;
  5624. ; pascal ComponentResult DataHCanUseDataRef(DataHandler dh, Handle dataRef, long *useFlags)
  5625. ;
  5626.     IF ¬ GENERATINGCFM THEN
  5627.         Macro
  5628.         _DataHCanUseDataRef
  5629.             dc.w     $2F3C
  5630.             dc.w     $0008
  5631.             dc.w     $0013
  5632.             moveq    #0,d0
  5633.             dc.w     $A82A
  5634.         EndM
  5635.     ELSE
  5636.         IMPORT    DataHCanUseDataRef
  5637.     ENDIF
  5638.  
  5639. ;
  5640. ; pascal ComponentResult DataHGetVolumeList(DataHandler dh, DataHVolumeList *volumeList)
  5641. ;
  5642.     IF ¬ GENERATINGCFM THEN
  5643.         Macro
  5644.         _DataHGetVolumeList
  5645.             dc.w     $2F3C
  5646.             dc.w     $0004
  5647.             dc.w     $0014
  5648.             moveq    #0,d0
  5649.             dc.w     $A82A
  5650.         EndM
  5651.     ELSE
  5652.         IMPORT    DataHGetVolumeList
  5653.     ENDIF
  5654.  
  5655. ;
  5656. ; pascal ComponentResult DataHWrite(DataHandler dh, Ptr data, long offset, long size, DataHCompletionUPP completion, long refCon)
  5657. ;
  5658.     IF ¬ GENERATINGCFM THEN
  5659.         Macro
  5660.         _DataHWrite
  5661.             dc.w     $2F3C
  5662.             dc.w     $0014
  5663.             dc.w     $0015
  5664.             moveq    #0,d0
  5665.             dc.w     $A82A
  5666.         EndM
  5667.     ELSE
  5668.         IMPORT    DataHWrite
  5669.     ENDIF
  5670.  
  5671. ;
  5672. ; pascal ComponentResult DataHPreextend(DataHandler dh, long maxToAdd, long *spaceAdded)
  5673. ;
  5674.     IF ¬ GENERATINGCFM THEN
  5675.         Macro
  5676.         _DataHPreextend
  5677.             dc.w     $2F3C
  5678.             dc.w     $0008
  5679.             dc.w     $0016
  5680.             moveq    #0,d0
  5681.             dc.w     $A82A
  5682.         EndM
  5683.     ELSE
  5684.         IMPORT    DataHPreextend
  5685.     ENDIF
  5686.  
  5687. ;
  5688. ; pascal ComponentResult DataHSetFileSize(DataHandler dh, long fileSize)
  5689. ;
  5690.     IF ¬ GENERATINGCFM THEN
  5691.         Macro
  5692.         _DataHSetFileSize
  5693.             dc.w     $2F3C
  5694.             dc.w     $0004
  5695.             dc.w     $0017
  5696.             moveq    #0,d0
  5697.             dc.w     $A82A
  5698.         EndM
  5699.     ELSE
  5700.         IMPORT    DataHSetFileSize
  5701.     ENDIF
  5702.  
  5703. ;
  5704. ; pascal ComponentResult DataHGetFreeSpace(DataHandler dh, unsigned long *freeSize)
  5705. ;
  5706.     IF ¬ GENERATINGCFM THEN
  5707.         Macro
  5708.         _DataHGetFreeSpace
  5709.             dc.w     $2F3C
  5710.             dc.w     $0004
  5711.             dc.w     $0018
  5712.             moveq    #0,d0
  5713.             dc.w     $A82A
  5714.         EndM
  5715.     ELSE
  5716.         IMPORT    DataHGetFreeSpace
  5717.     ENDIF
  5718.  
  5719. ;
  5720. ; pascal ComponentResult DataHCreateFile(DataHandler dh, OSType creator, Boolean deleteExisting)
  5721. ;
  5722.     IF ¬ GENERATINGCFM THEN
  5723.         Macro
  5724.         _DataHCreateFile
  5725.             dc.w     $2F3C
  5726.             dc.w     $0006
  5727.             dc.w     $0019
  5728.             moveq    #0,d0
  5729.             dc.w     $A82A
  5730.         EndM
  5731.     ELSE
  5732.         IMPORT    DataHCreateFile
  5733.     ENDIF
  5734.  
  5735. ;
  5736. ; pascal ComponentResult DataHGetPreferredBlockSize(DataHandler dh, long *blockSize)
  5737. ;
  5738.     IF ¬ GENERATINGCFM THEN
  5739.         Macro
  5740.         _DataHGetPreferredBlockSize
  5741.             dc.w     $2F3C
  5742.             dc.w     $0004
  5743.             dc.w     $001A
  5744.             moveq    #0,d0
  5745.             dc.w     $A82A
  5746.         EndM
  5747.     ELSE
  5748.         IMPORT    DataHGetPreferredBlockSize
  5749.     ENDIF
  5750.  
  5751. ;
  5752. ; pascal ComponentResult DataHGetDeviceIndex(DataHandler dh, long *deviceIndex)
  5753. ;
  5754.     IF ¬ GENERATINGCFM THEN
  5755.         Macro
  5756.         _DataHGetDeviceIndex
  5757.             dc.w     $2F3C
  5758.             dc.w     $0004
  5759.             dc.w     $001B
  5760.             moveq    #0,d0
  5761.             dc.w     $A82A
  5762.         EndM
  5763.     ELSE
  5764.         IMPORT    DataHGetDeviceIndex
  5765.     ENDIF
  5766.  
  5767. ;
  5768. ; pascal ComponentResult DataHIsStreamingDataHandler(DataHandler dh, Boolean *yes)
  5769. ;
  5770.     IF ¬ GENERATINGCFM THEN
  5771.         Macro
  5772.         _DataHIsStreamingDataHandler
  5773.             dc.w     $2F3C
  5774.             dc.w     $0004
  5775.             dc.w     $001C
  5776.             moveq    #0,d0
  5777.             dc.w     $A82A
  5778.         EndM
  5779.     ELSE
  5780.         IMPORT    DataHIsStreamingDataHandler
  5781.     ENDIF
  5782.  
  5783. ;
  5784. ; pascal ComponentResult DataHGetDataInBuffer(DataHandler dh, long startOffset, long *size)
  5785. ;
  5786.     IF ¬ GENERATINGCFM THEN
  5787.         Macro
  5788.         _DataHGetDataInBuffer
  5789.             dc.w     $2F3C
  5790.             dc.w     $0008
  5791.             dc.w     $001D
  5792.             moveq    #0,d0
  5793.             dc.w     $A82A
  5794.         EndM
  5795.     ELSE
  5796.         IMPORT    DataHGetDataInBuffer
  5797.     ENDIF
  5798.  
  5799. ;
  5800. ; pascal ComponentResult DataHGetScheduleAheadTime(DataHandler dh, long *millisecs)
  5801. ;
  5802.     IF ¬ GENERATINGCFM THEN
  5803.         Macro
  5804.         _DataHGetScheduleAheadTime
  5805.             dc.w     $2F3C
  5806.             dc.w     $0004
  5807.             dc.w     $001E
  5808.             moveq    #0,d0
  5809.             dc.w     $A82A
  5810.         EndM
  5811.     ELSE
  5812.         IMPORT    DataHGetScheduleAheadTime
  5813.     ENDIF
  5814.  
  5815. ;
  5816. ; pascal ComponentResult DataHSetCacheSizeLimit(DataHandler dh, Size cacheSizeLimit)
  5817. ;
  5818.     IF ¬ GENERATINGCFM THEN
  5819.         Macro
  5820.         _DataHSetCacheSizeLimit
  5821.             dc.w     $2F3C
  5822.             dc.w     $0004
  5823.             dc.w     $001F
  5824.             moveq    #0,d0
  5825.             dc.w     $A82A
  5826.         EndM
  5827.     ELSE
  5828.         IMPORT    DataHSetCacheSizeLimit
  5829.     ENDIF
  5830.  
  5831. ;
  5832. ; pascal ComponentResult DataHGetCacheSizeLimit(DataHandler dh, Size *cacheSizeLimit)
  5833. ;
  5834.     IF ¬ GENERATINGCFM THEN
  5835.         Macro
  5836.         _DataHGetCacheSizeLimit
  5837.             dc.w     $2F3C
  5838.             dc.w     $0004
  5839.             dc.w     $0020
  5840.             moveq    #0,d0
  5841.             dc.w     $A82A
  5842.         EndM
  5843.     ELSE
  5844.         IMPORT    DataHGetCacheSizeLimit
  5845.     ENDIF
  5846.  
  5847. ;
  5848. ; pascal ComponentResult DataHGetMovie(DataHandler dh, Movie *theMovie, short *id)
  5849. ;
  5850.     IF ¬ GENERATINGCFM THEN
  5851.         Macro
  5852.         _DataHGetMovie
  5853.             dc.w     $2F3C
  5854.             dc.w     $0008
  5855.             dc.w     $0021
  5856.             moveq    #0,d0
  5857.             dc.w     $A82A
  5858.         EndM
  5859.     ELSE
  5860.         IMPORT    DataHGetMovie
  5861.     ENDIF
  5862.  
  5863. ;
  5864. ; pascal ComponentResult DataHAddMovie(DataHandler dh, Movie theMovie, short *id)
  5865. ;
  5866.     IF ¬ GENERATINGCFM THEN
  5867.         Macro
  5868.         _DataHAddMovie
  5869.             dc.w     $2F3C
  5870.             dc.w     $0008
  5871.             dc.w     $0022
  5872.             moveq    #0,d0
  5873.             dc.w     $A82A
  5874.         EndM
  5875.     ELSE
  5876.         IMPORT    DataHAddMovie
  5877.     ENDIF
  5878.  
  5879. ;
  5880. ; pascal ComponentResult DataHUpdateMovie(DataHandler dh, Movie theMovie, short id)
  5881. ;
  5882.     IF ¬ GENERATINGCFM THEN
  5883.         Macro
  5884.         _DataHUpdateMovie
  5885.             dc.w     $2F3C
  5886.             dc.w     $0006
  5887.             dc.w     $0023
  5888.             moveq    #0,d0
  5889.             dc.w     $A82A
  5890.         EndM
  5891.     ELSE
  5892.         IMPORT    DataHUpdateMovie
  5893.     ENDIF
  5894.  
  5895. ;
  5896. ; pascal ComponentResult DataHDoesBuffer(DataHandler dh, Boolean *buffersReads, Boolean *buffersWrites)
  5897. ;
  5898.     IF ¬ GENERATINGCFM THEN
  5899.         Macro
  5900.         _DataHDoesBuffer
  5901.             dc.w     $2F3C
  5902.             dc.w     $0008
  5903.             dc.w     $0024
  5904.             moveq    #0,d0
  5905.             dc.w     $A82A
  5906.         EndM
  5907.     ELSE
  5908.         IMPORT    DataHDoesBuffer
  5909.     ENDIF
  5910.  
  5911. ;
  5912. ; pascal ComponentResult DataHPlaybackHints(DataHandler dh, long flags, unsigned long minFileOffset, unsigned long maxFileOffset, long bytesPerSecond)
  5913. ;
  5914.     IF ¬ GENERATINGCFM THEN
  5915.         Macro
  5916.         _DataHPlaybackHints
  5917.             dc.w     $2F3C
  5918.             dc.w     $0010
  5919.             dc.w     $0103
  5920.             moveq    #0,d0
  5921.             dc.w     $A82A
  5922.         EndM
  5923.     ELSE
  5924.         IMPORT    DataHPlaybackHints
  5925.     ENDIF
  5926.  
  5927.  
  5928. kDataHGetDataSelect                EQU        $2
  5929. kDataHPutDataSelect                EQU        $3
  5930. kDataHFlushDataSelect            EQU        $4
  5931. kDataHOpenForWriteSelect        EQU        $5
  5932. kDataHCloseForWriteSelect        EQU        $6
  5933. kDataHOpenForReadSelect            EQU        $8
  5934. kDataHCloseForReadSelect        EQU        $9
  5935. kDataHSetDataRefSelect            EQU        $A
  5936. kDataHGetDataRefSelect            EQU        $B
  5937. kDataHCompareDataRefSelect        EQU        $C
  5938. kDataHTaskSelect                EQU        $D
  5939. kDataHScheduleDataSelect        EQU        $E
  5940. kDataHFinishDataSelect            EQU        $F
  5941. kDataHFlushCacheSelect            EQU        $10
  5942. kDataHResolveDataRefSelect        EQU        $11
  5943. kDataHGetFileSizeSelect            EQU        $12
  5944. kDataHCanUseDataRefSelect        EQU        $13
  5945. kDataHGetVolumeListSelect        EQU        $14
  5946. kDataHWriteSelect                EQU        $15
  5947. kDataHPreextendSelect            EQU        $16
  5948. kDataHSetFileSizeSelect            EQU        $17
  5949. kDataHGetFreeSpaceSelect        EQU        $18
  5950. kDataHCreateFileSelect            EQU        $19
  5951. kDataHGetPreferredBlockSizeSelect EQU        $1A
  5952. kDataHGetDeviceIndexSelect        EQU        $1B
  5953. kDataHIsStreamingDataHandlerSelect EQU        $1C
  5954. kDataHGetDataInBufferSelect        EQU        $1D
  5955. kDataHGetScheduleAheadTimeSelect EQU        $1E
  5956. kDataHSetCacheSizeLimitSelect    EQU        $1F
  5957. kDataHGetCacheSizeLimitSelect    EQU        $20
  5958. kDataHGetMovieSelect            EQU        $21
  5959. kDataHAddMovieSelect            EQU        $22
  5960. kDataHUpdateMovieSelect            EQU        $23
  5961. kDataHDoesBufferSelect            EQU        $24
  5962. kDataHPlaybackHintsSelect        EQU        $103
  5963.  
  5964. ;
  5965. ;    AtomicInstrument
  5966. ;         ToneDescription
  5967. ;        [NoteRequestInfo]
  5968. ;        [KnobList]
  5969. ;        [SampleInfo [1..m]] 
  5970. ;             SampeDescription (identifies corresponding SampleData)
  5971. ;            [KnobList]
  5972. ;        [SampleData [1..n]]
  5973. ;        [InstrumentInfo]
  5974. ;            [Pict]
  5975. ;            [Author]
  5976. ;            [Copyright]
  5977. ;            [Other]
  5978. ;
  5979. kaiToneDescType                    EQU        'tone'
  5980. kaiKnobListType                    EQU        'knbl'
  5981. kaiSampleInfoType                EQU        'sinf'
  5982. kaiSampleDescType                EQU        'sdsc'
  5983. kaiInstInfoType                    EQU        'iinf'
  5984. kaiPictType                        EQU        'pict'
  5985. kaiWriterType                    EQU        '©wrt'
  5986. kaiCopyrightType                EQU        '©cpy'
  5987. kaiOtherStrType                    EQU        'str '
  5988. kaiSampleDataType                EQU        'sdat'
  5989. kaiNoteRequestInfoType            EQU        'ntrq'
  5990.  
  5991. InstKnobRec             RECORD    0
  5992. number                     ds.l    1
  5993. value                     ds.l    1
  5994. sizeof                     EQU    *
  5995.                         ENDR
  5996.  
  5997. ; typedef struct InstKnobRec  InstKnobRec
  5998.  
  5999. kInstKnobMissingUnknown            EQU        0
  6000. kInstKnobMissingDefault            EQU        1 << 0
  6001.  
  6002. InstKnobList             RECORD    0
  6003. knobCount                 ds.l    1
  6004. knobFlags                 ds.l    1
  6005. knob                     ds        InstKnobRec
  6006. sizeof                     EQU    *
  6007.                         ENDR
  6008.  
  6009. ; typedef struct InstKnobList  InstKnobList
  6010.  
  6011. loopTypeNormal                    EQU        0
  6012. loopTypeAlternating                EQU        1                    ; back & forth
  6013.  
  6014. instSamplePreProcessFlag        EQU        1 << 0
  6015.  
  6016. InstSampleDescRec         RECORD    0
  6017. dataFormat                 ds.l    1
  6018. numChannels                 ds.w    1
  6019. sampleSize                 ds.w    1
  6020. sampleRate                 ds.l    1
  6021. sampleDataID             ds.w    1
  6022. offset                     ds.l    1                                    ; offset within SampleData - this could be just for internal use
  6023. numSamples                 ds.l    1                                    ; this could also just be for internal use, we'll see
  6024. loopType                 ds.l    1
  6025. loopStart                 ds.l    1
  6026. loopEnd                     ds.l    1
  6027. pitchNormal                 ds.l    1
  6028. pitchLow                 ds.l    1
  6029. pitchHigh                 ds.l    1
  6030. sizeof                     EQU    *
  6031.                         ENDR
  6032.  
  6033. ; typedef struct InstSampleDescRec  InstSampleDescRec
  6034. ; typedef Handle             AtomicInstrument
  6035. ; typedef Ptr                 AtomicInstrumentPtr
  6036.  
  6037. kMusicComponentType                EQU        'musi'
  6038.  
  6039. kSoftSynthType                    EQU        'ss  '
  6040. kGMSynthType                    EQU        'gm  '
  6041.  
  6042. ; typedef ComponentInstance  MusicComponent
  6043. ; MusicSynthesizerFlags
  6044.  
  6045. kSynthesizerDynamicVoice        EQU        1                    ; can assign voices on the fly (else, polyphony is very important 
  6046. kSynthesizerUsesMIDIPort        EQU        2                    ; must be patched through MIDI Manager 
  6047. kSynthesizerMicrotone            EQU        4                    ; can play microtonal scales 
  6048. kSynthesizerLimitedMicrotone    EQU        8                    ; can play microtones, but only on 1-voice parts 
  6049. kSynthesizerMixedDrums            EQU        16                    ; any part can play drum parts, total = instrument parts 
  6050. kSynthesizerSoftware            EQU        32                    ; implemented in main CPU software == uses cpu cycles 
  6051. kSynthesizerHardware            EQU        64                    ; is a hardware device (such as nubus, or maybe DSP?) 
  6052. kSynthesizerDynamicChannel        EQU        128                    ; can move any part to any channel or disable each part. (else we assume it lives on all channels in masks) 
  6053. kSynthesizerHogsSystemChannel    EQU        256                    ; can be channelwise dynamic, but always responds on its system channel 
  6054. kSynthesizerEditsMainChannel    EQU        512                    ; can only twiddle knobs on the main system channel 
  6055. kSynthesizerSlowSetPart            EQU        1024                ; SetPart() and SetPartInstrumentNumber() calls do not have rapid response, may glitch notes 
  6056. kSynthesizerNeedsSystemChannel    EQU        2048                ; The user need not be queried for system channel, example: GM synth 
  6057. kSynthesizerCanBeMono            EQU        4096                ; Synthesizer can be configured either mono or poly 
  6058. kSynthesizerGMSuperset            EQU        8192                ; synth is a GM device, with some voices beyond the GM set. (if set, kSynthesizerGM must also be set 
  6059. kSynthesizerGM                    EQU        16384                ; synth is a GM device 
  6060.  
  6061. ;
  6062. ; * Note that these controller numbers
  6063. ; * are _not_ identical to the MIDI controller numbers.
  6064. ; * These are _signed_ 8.8 values, and the LSB's are
  6065. ; * always sent to a MIDI device. Controllers 32-63 are
  6066. ; * reserved (for MIDI, they are LSB's for 0-31, but we
  6067. ; * always send both).
  6068. ; *
  6069. ; * The full range, therefore, is -128.00 to 127.7f.
  6070. ; *
  6071. ; * _Excepting_ _volume_, all controls default to zero.
  6072. ; *
  6073. ; * Pitch bend is specified in fractional semitones! No
  6074. ; * more "pitch bend range" nonsense. You can bend as far
  6075. ; * as you want, any time you want.
  6076. kControllerModulationWheel        EQU        1
  6077. kControllerBreath                EQU        2
  6078. kControllerFoot                    EQU        4
  6079. kControllerPortamentoTime        EQU        5                    ; portamento on/off is omitted, 0 time = 'off' 
  6080. kControllerVolume                EQU        7
  6081. kControllerBalance                EQU        8
  6082. kControllerPan                    EQU        10                    ; 0 - "default", 1 - n: positioned in output 1-n (incl fractions) 
  6083. kControllerExpression            EQU        11
  6084. kControllerLever1                EQU        16                    ; general purpose controllers 
  6085. kControllerLever2                EQU        17                    ; general purpose controllers 
  6086. kControllerLever3                EQU        18                    ; general purpose controllers 
  6087. kControllerLever4                EQU        19                    ; general purpose controllers 
  6088. kControllerLever5                EQU        80                    ; general purpose controllers 
  6089. kControllerLever6                EQU        81                    ; general purpose controllers 
  6090. kControllerLever7                EQU        82                    ; general purpose controllers 
  6091. kControllerLever8                EQU        83                    ; general purpose controllers 
  6092. kControllerPitchBend            EQU        32                    ; positive & negative semitones, with 7 bits fraction 
  6093. kControllerAfterTouch            EQU        33                    ; aka channel pressure 
  6094. kControllerSustain                EQU        64                    ; boolean - positive for on, 0 or negative off 
  6095. kControllerSostenuto            EQU        66                    ; boolean 
  6096. kControllerSoftPedal            EQU        67                    ; boolean 
  6097. kControllerReverb                EQU        91
  6098. kControllerTremolo                EQU        92
  6099. kControllerChorus                EQU        93
  6100. kControllerCeleste                EQU        94
  6101. kControllerPhaser                EQU        95
  6102.  
  6103. kControllerMaximum                EQU        $7FFF                ; +01111111.11111111 
  6104. kControllerMinimum                EQU        $8000                ; -10000000.00000000 
  6105.  
  6106. SynthesizerDescription     RECORD    0
  6107. synthesizerType             ds.l    1                                    ; synthesizer type (must be same as component subtype) 
  6108. name                     ds.l    8                                    ; text name of synthesizer type 
  6109. flags                     ds.l    1                                    ; from the above enum 
  6110. voiceCount                 ds.l    1                                    ; maximum polyphony 
  6111. partCount                 ds.l    1                                    ; maximum multi-timbrality (and midi channels) 
  6112. instrumentCount             ds.l    1                                    ; non gm, built in (rom) instruments only 
  6113. modifiableInstrumentCount ds.l    1                                    ; plus n-more are user modifiable 
  6114. channelMask                 ds.l    1                                    ; (midi device only) which channels device always uses 
  6115. drumPartCount             ds.l    1                                    ; maximum multi-timbrality of drum parts 
  6116. drumCount                 ds.l    1                                    ; non gm, built in (rom) drumkits only 
  6117. modifiableDrumCount         ds.l    1                                    ; plus n-more are user modifiable 
  6118. drumChannelMask             ds.l    1                                    ; (midi device only) which channels device always uses 
  6119. outputCount                 ds.l    1                                    ; number of audio outputs (usually two) 
  6120. latency                     ds.l    1                                    ; response time in µSec 
  6121. controllers                 ds.l    4                                    ; array of 128 bits 
  6122. gmInstruments             ds.l    4                                    ; array of 128 bits 
  6123. gmDrums                     ds.l    4                                    ; array of 128 bits 
  6124. sizeof                     EQU    *
  6125.                         ENDR
  6126.  
  6127. ; typedef struct SynthesizerDescription  SynthesizerDescription
  6128.  
  6129. kVoiceCountDynamic                EQU        -1                    ; constant to use to specify dynamic voicing 
  6130.  
  6131. ToneDescription         RECORD    0
  6132. synthesizerType             ds.l    1                                    ; synthesizer type 
  6133. synthesizerName             ds.l    8                                    ; name of instantiation of synth 
  6134. instrumentName             ds.l    8                                    ; preferred name for human use 
  6135. instrumentNumber         ds.l    1                                    ; inst-number used if synth-name matches 
  6136. gmNumber                 ds.l    1                                    ; Best matching general MIDI number 
  6137. sizeof                     EQU    *
  6138.                         ENDR
  6139.  
  6140. ; typedef struct ToneDescription  ToneDescription
  6141.  
  6142. kFirstDrumkit                    EQU        16384                ; (first value is "no drum". instrument numbers from 16384->16384+128 are drumkits, and for GM they are _defined_ drumkits! 
  6143. kLastDrumkit                    EQU        (kFirstDrumkit + 128)
  6144.  
  6145. ; InstrumentMatch
  6146. kInstrumentMatchSynthesizerType    EQU        1
  6147. kInstrumentMatchSynthesizerName    EQU        2
  6148. kInstrumentMatchName            EQU        4
  6149. kInstrumentMatchNumber            EQU        8
  6150. kInstrumentMatchGMNumber        EQU        16
  6151.  
  6152. ; KnobFlags
  6153. kKnobRealtime                    EQU        1                    ; Knob can be changed interactively as part of a sequence (ie knob can be changed at interrupt time) 
  6154. kKnobNextNote                    EQU        2                    ; Knob only takes effect on the next note played 
  6155. kKnobAction                        EQU        4                    ; setting the knob does something immediate 
  6156. kKnobNotInstrument                EQU        8                    ; indicates that the knob isn't in the instrument handle 
  6157. kKnobAffectsOthers                EQU        16                    ; other knobs will change value from this one 
  6158. kKnobInterruptUnsafe            EQU        32                    ; only alter this knob from foreground task time (may access toolbox) 
  6159. kKnobMinorGroupStart            EQU        64                    ; knob is first in some logical subgroup of knobs 
  6160. kKnobGroupStart                    EQU        128                    ; knob is first in some logical group of knobs 
  6161. kKnobFixedPoint8                EQU        1024
  6162. kKnobFixedPoint16                EQU        2048
  6163. ; One of these may be used at a time. 
  6164. kKnobTypeNumber                    EQU        0 << 12
  6165. kKnobTypeGroupName                EQU        1 << 12                ; "knob" is really a group name for display purposes 
  6166. kKnobTypeBoolean                EQU        2 << 12                ; if range is greater than 1, its a multi-checkbox field 
  6167. kKnobTypeNote                    EQU        3 << 12                ; knob range is equivalent to MIDI keys 
  6168. kKnobTypePan                    EQU        4 << 12                ; range goes left/right (lose this? ) 
  6169. kKnobTypeInstrument                EQU        5 << 12                ; knob value = reference to another instrument number 
  6170. kKnobTypeSetting                EQU        6 << 12                ; knob value is 1 of n different things (eg, fm algorithms) popup menu 
  6171. kKnobTypeMilliseconds            EQU        7 << 12                ; knob is a millisecond time range 
  6172. kKnobTypePercentage                EQU        8 << 12                ; knob range is displayed as a Percentage 
  6173. kKnobTypeHertz                    EQU        9 << 12                ; knob represents frequency 
  6174.  
  6175. kUnknownKnobValue                EQU        $7FFFFFFF            ; a knob with this value means, we don't know it. 
  6176. kDefaultKnobValue                EQU        $7FFFFFFE            ; used to SET a knob to its default value. 
  6177.  
  6178. KnobDescription         RECORD    0
  6179. name                     ds.l    8
  6180. lowValue                 ds.l    1
  6181. highValue                 ds.l    1
  6182. defaultValue             ds.l    1                                    ; a default instrument is made of all default values 
  6183. flags                     ds.l    1
  6184. knobID                     ds.l    1
  6185. sizeof                     EQU    *
  6186.                         ENDR
  6187.  
  6188. ; typedef struct KnobDescription  KnobDescription
  6189. InstrumentAboutInfo     RECORD    0
  6190. p                         ds.l    1
  6191. author                     ds.l    64
  6192. copyright                 ds.l    64
  6193. other                     ds.l    64
  6194. sizeof                     EQU    *
  6195.                         ENDR
  6196.  
  6197. ; typedef struct InstrumentAboutInfo  InstrumentAboutInfo
  6198.  
  6199. kMusicPacketPortLost            EQU        1                    ; received when application loses the default input port 
  6200. kMusicPacketPortFound            EQU        2                    ; received when application gets it back out from under someone else's claim 
  6201. kMusicPacketTimeGap                EQU        3                    ; data[0] = number of milliseconds to keep the MIDI line silent 
  6202.  
  6203. MusicMIDIPacket         RECORD    0
  6204. length                     ds.w    1
  6205. reserved                 ds.l    1                                    ; if length zero, then reserved = above enum 
  6206. data                     ds.b    249
  6207. sizeof                     EQU    *
  6208.                         ENDR
  6209.  
  6210. ; typedef struct MusicMIDIPacket  MusicMIDIPacket
  6211.  
  6212. kMusicFirstSelect                EQU        0
  6213. kMusicGetDescriptionSelect        EQU        1
  6214. kMusicGetPartSelect                EQU        2
  6215. kMusicSetPartSelect                EQU        3
  6216. kMusicSetPartInstrumentNumberSelect EQU        4
  6217. kMusicGetPartInstrumentNumberSelect EQU        5
  6218. kMusicStorePartInstrumentSelect    EQU        6
  6219. kMusicDummyOne                    EQU        7
  6220. kMusicDummyTwo                    EQU        8
  6221. kMusicGetPartAtomicInstrumentSelect EQU        9
  6222. kMusicSetPartAtomicInstrumentSelect EQU        10
  6223. kMusicDummyThree                EQU        11
  6224. kMusicDummyFour                    EQU        12
  6225. kMusicGetInstrumentKnobDescriptionObsoleteSelect EQU        13
  6226. kMusicGetDrumKnobDescriptionObsoleteSelect EQU        14
  6227. kMusicGetKnobDescriptionObsoleteSelect EQU        15
  6228. kMusicGetPartKnobSelect            EQU        16
  6229. kMusicSetPartKnobSelect            EQU        17
  6230. kMusicGetKnobSelect                EQU        18
  6231. kMusicSetKnobSelect                EQU        19
  6232. kMusicGetPartNameSelect            EQU        20
  6233. kMusicSetPartNameSelect            EQU        21
  6234. kMusicFindToneSelect            EQU        22
  6235. kMusicPlayNoteSelect            EQU        23
  6236. kMusicResetPartSelect            EQU        24
  6237. kMusicSetPartControllerSelect    EQU        25
  6238. kMusicGetPartControllerSelect    EQU        26
  6239. kMusicGetMIDIProcSelect            EQU        27
  6240. kMusicSetMIDIProcSelect            EQU        28
  6241. kMusicGetInstrumentNamesSelect    EQU        29
  6242. kMusicGetDrumNamesSelect        EQU        30
  6243. kMusicGetMasterTuneSelect        EQU        31
  6244. kMusicSetMasterTuneSelect        EQU        32
  6245. kMusicDummyFive                    EQU        33
  6246. kMusicGetInstrumentAboutInfoSelect EQU        34
  6247. kMusicGetDeviceConnectionSelect    EQU        35
  6248. kMusicUseDeviceConnectionSelect    EQU        36
  6249. kMusicGetInstrumentKnobSettingsSelect EQU        37
  6250. kMusicGetMIDIPortsSelect        EQU        38
  6251. kMusicSendMIDISelect            EQU        39
  6252. kMusicReceiveMIDISelect            EQU        40
  6253. kMusicStartOfflineSelect        EQU        41
  6254. kMusicSetOfflineTimeToSelect    EQU        42
  6255. kMusicGetInstrumentKnobDescriptionSelect EQU        43
  6256. kMusicGetDrumKnobDescriptionSelect EQU        44
  6257. kMusicGetKnobDescriptionSelect    EQU        45
  6258.  
  6259. notImplementedMusicErr            EQU        ($80000000 | ((-2100 - 1)))
  6260. cantSendToSynthesizerErr        EQU        ($80000000 | ((-2100 - 2)))
  6261. cantReceiveFromSynthesizerErr    EQU        ($80000000 | ((-2100 - 3)))
  6262. illegalVoiceAllocationErr        EQU        ($80000000 | ((-2100 - 4)))
  6263. illegalPartErr                    EQU        ($80000000 | ((-2100 - 5)))
  6264. illegalChannelErr                EQU        ($80000000 | ((-2100 - 6)))
  6265. illegalKnobErr                    EQU        ($80000000 | ((-2100 - 7)))
  6266. illegalKnobValueErr                EQU        ($80000000 | ((-2100 - 8)))
  6267. illegalInstrumentErr            EQU        ($80000000 | ((-2100 - 9)))
  6268. illegalControllerErr            EQU        ($80000000 | ((-2100 - 10)))
  6269. midiManagerAbsentErr            EQU        ($80000000 | ((-2100 - 11)))
  6270. synthesizerNotRespondingErr        EQU        ($80000000 | ((-2100 - 12)))
  6271. synthesizerErr                    EQU        ($80000000 | ((-2100 - 13)))
  6272. illegalNoteChannelErr            EQU        ($80000000 | ((-2100 - 14)))
  6273. noteChannelNotAllocatedErr        EQU        ($80000000 | ((-2100 - 15)))
  6274. tunePlayerFullErr                EQU        ($80000000 | ((-2100 - 16)))
  6275. tuneParseErr                    EQU        ($80000000 | ((-2100 - 17)))
  6276.  
  6277. kGMType                            EQU        'gm  '
  6278.  
  6279. ;-----------------------------------------
  6280. ;    Capabilities and Voice Allocation
  6281. ;-----------------------------------------
  6282. ;
  6283. ; pascal ComponentResult MusicGetPart(MusicComponent mc, long part, long *midiChannel, long *polyphony)
  6284. ;
  6285.     IF ¬ GENERATINGCFM THEN
  6286.         Macro
  6287.         _MusicGetPart
  6288.             dc.w     $2F3C
  6289.             dc.w     $000C
  6290.             dc.w     $0002
  6291.             moveq    #0,d0
  6292.             dc.w     $A82A
  6293.         EndM
  6294.     ELSE
  6295.         IMPORT    MusicGetPart
  6296.     ENDIF
  6297.  
  6298. ;
  6299. ; pascal ComponentResult MusicSetPart(MusicComponent mc, long part, long midiChannel, long polyphony)
  6300. ;
  6301.     IF ¬ GENERATINGCFM THEN
  6302.         Macro
  6303.         _MusicSetPart
  6304.             dc.w     $2F3C
  6305.             dc.w     $000C
  6306.             dc.w     $0003
  6307.             moveq    #0,d0
  6308.             dc.w     $A82A
  6309.         EndM
  6310.     ELSE
  6311.         IMPORT    MusicSetPart
  6312.     ENDIF
  6313.  
  6314. ;
  6315. ; pascal ComponentResult MusicGetDescription(MusicComponent mc, SynthesizerDescription *sd)
  6316. ;
  6317.     IF ¬ GENERATINGCFM THEN
  6318.         Macro
  6319.         _MusicGetDescription
  6320.             dc.w     $2F3C
  6321.             dc.w     $0004
  6322.             dc.w     $0001
  6323.             moveq    #0,d0
  6324.             dc.w     $A82A
  6325.         EndM
  6326.     ELSE
  6327.         IMPORT    MusicGetDescription
  6328.     ENDIF
  6329.  
  6330. ;
  6331. ; pascal ComponentResult MusicGetInstrumentAboutInfo(MusicComponent mc, long part, InstrumentAboutInfo *iai)
  6332. ;
  6333.     IF ¬ GENERATINGCFM THEN
  6334.         Macro
  6335.         _MusicGetInstrumentAboutInfo
  6336.             dc.w     $2F3C
  6337.             dc.w     $0008
  6338.             dc.w     $0022
  6339.             moveq    #0,d0
  6340.             dc.w     $A82A
  6341.         EndM
  6342.     ELSE
  6343.         IMPORT    MusicGetInstrumentAboutInfo
  6344.     ENDIF
  6345.  
  6346. ;-----------------------------------------
  6347. ;    Instrument Loading and Storing
  6348. ;-----------------------------------------
  6349. ;
  6350. ; pascal ComponentResult MusicSetPartInstrumentNumber(MusicComponent mc, long part, long instrumentNumber)
  6351. ;
  6352.     IF ¬ GENERATINGCFM THEN
  6353.         Macro
  6354.         _MusicSetPartInstrumentNumber
  6355.             dc.w     $2F3C
  6356.             dc.w     $0008
  6357.             dc.w     $0004
  6358.             moveq    #0,d0
  6359.             dc.w     $A82A
  6360.         EndM
  6361.     ELSE
  6362.         IMPORT    MusicSetPartInstrumentNumber
  6363.     ENDIF
  6364.  
  6365. ;
  6366. ; pascal ComponentResult MusicGetPartInstrumentNumber(MusicComponent mc, long part)
  6367. ;
  6368.     IF ¬ GENERATINGCFM THEN
  6369.         Macro
  6370.         _MusicGetPartInstrumentNumber
  6371.             dc.w     $2F3C
  6372.             dc.w     $0004
  6373.             dc.w     $0005
  6374.             moveq    #0,d0
  6375.             dc.w     $A82A
  6376.         EndM
  6377.     ELSE
  6378.         IMPORT    MusicGetPartInstrumentNumber
  6379.     ENDIF
  6380.  
  6381. ;
  6382. ; pascal ComponentResult MusicStorePartInstrument(MusicComponent mc, long part, long instrumentNumber)
  6383. ;
  6384.     IF ¬ GENERATINGCFM THEN
  6385.         Macro
  6386.         _MusicStorePartInstrument
  6387.             dc.w     $2F3C
  6388.             dc.w     $0008
  6389.             dc.w     $0006
  6390.             moveq    #0,d0
  6391.             dc.w     $A82A
  6392.         EndM
  6393.     ELSE
  6394.         IMPORT    MusicStorePartInstrument
  6395.     ENDIF
  6396.  
  6397. getAtomicInstGetOriginalSamples    EQU        1 << 0
  6398. getAtomicInstGetExpandedSamples    EQU        1 << 1
  6399.  
  6400. ;
  6401. ; pascal ComponentResult MusicGetPartAtomicInstrument(MusicComponent mc, long part, AtomicInstrument *ai, long flags)
  6402. ;
  6403.     IF ¬ GENERATINGCFM THEN
  6404.         Macro
  6405.         _MusicGetPartAtomicInstrument
  6406.             dc.w     $2F3C
  6407.             dc.w     $000C
  6408.             dc.w     $0009
  6409.             moveq    #0,d0
  6410.             dc.w     $A82A
  6411.         EndM
  6412.     ELSE
  6413.         IMPORT    MusicGetPartAtomicInstrument
  6414.     ENDIF
  6415.  
  6416. setAtomicInstKeepOriginalSamples EQU        1 << 0
  6417. setAtomicInstNeverPurgeSamples    EQU        1 << 1                ; if set self-contained inst stays until app goes away 
  6418.  
  6419. ;
  6420. ; pascal ComponentResult MusicSetPartAtomicInstrument(MusicComponent mc, long part, AtomicInstrumentPtr aiP, long flags)
  6421. ;
  6422.     IF ¬ GENERATINGCFM THEN
  6423.         Macro
  6424.         _MusicSetPartAtomicInstrument
  6425.             dc.w     $2F3C
  6426.             dc.w     $000C
  6427.             dc.w     $000A
  6428.             moveq    #0,d0
  6429.             dc.w     $A82A
  6430.         EndM
  6431.     ELSE
  6432.         IMPORT    MusicSetPartAtomicInstrument
  6433.     ENDIF
  6434.  
  6435. ;-----------------------------------------
  6436. ;    Instrument Knobs
  6437. ;-----------------------------------------
  6438. ;
  6439. ; pascal ComponentResult MusicGetInstrumentKnobDescription(MusicComponent mc, long knobIndex, KnobDescription *mkd)
  6440. ;
  6441.     IF ¬ GENERATINGCFM THEN
  6442.         Macro
  6443.         _MusicGetInstrumentKnobDescription
  6444.             dc.w     $2F3C
  6445.             dc.w     $0008
  6446.             dc.w     $002B
  6447.             moveq    #0,d0
  6448.             dc.w     $A82A
  6449.         EndM
  6450.     ELSE
  6451.         IMPORT    MusicGetInstrumentKnobDescription
  6452.     ENDIF
  6453.  
  6454. ;
  6455. ; pascal ComponentResult MusicGetDrumKnobDescription(MusicComponent mc, long knobIndex, KnobDescription *mkd)
  6456. ;
  6457.     IF ¬ GENERATINGCFM THEN
  6458.         Macro
  6459.         _MusicGetDrumKnobDescription
  6460.             dc.w     $2F3C
  6461.             dc.w     $0008
  6462.             dc.w     $002C
  6463.             moveq    #0,d0
  6464.             dc.w     $A82A
  6465.         EndM
  6466.     ELSE
  6467.         IMPORT    MusicGetDrumKnobDescription
  6468.     ENDIF
  6469.  
  6470. ;
  6471. ; pascal ComponentResult MusicGetInstrumentKnobSettings(MusicComponent mc, long knobIndex, Handle *settingsNames, Handle *settingsCategoryLasts, Handle *settingsCategoryNames)
  6472. ;
  6473.     IF ¬ GENERATINGCFM THEN
  6474.         Macro
  6475.         _MusicGetInstrumentKnobSettings
  6476.             dc.w     $2F3C
  6477.             dc.w     $0010
  6478.             dc.w     $0025
  6479.             moveq    #0,d0
  6480.             dc.w     $A82A
  6481.         EndM
  6482.     ELSE
  6483.         IMPORT    MusicGetInstrumentKnobSettings
  6484.     ENDIF
  6485.  
  6486. ;
  6487. ; pascal ComponentResult MusicGetPartKnob(MusicComponent mc, long part, long knobID)
  6488. ;
  6489.     IF ¬ GENERATINGCFM THEN
  6490.         Macro
  6491.         _MusicGetPartKnob
  6492.             dc.w     $2F3C
  6493.             dc.w     $0008
  6494.             dc.w     $0010
  6495.             moveq    #0,d0
  6496.             dc.w     $A82A
  6497.         EndM
  6498.     ELSE
  6499.         IMPORT    MusicGetPartKnob
  6500.     ENDIF
  6501.  
  6502. ;
  6503. ; pascal ComponentResult MusicSetPartKnob(MusicComponent mc, long part, long knobID, long knobValue)
  6504. ;
  6505.     IF ¬ GENERATINGCFM THEN
  6506.         Macro
  6507.         _MusicSetPartKnob
  6508.             dc.w     $2F3C
  6509.             dc.w     $000C
  6510.             dc.w     $0011
  6511.             moveq    #0,d0
  6512.             dc.w     $A82A
  6513.         EndM
  6514.     ELSE
  6515.         IMPORT    MusicSetPartKnob
  6516.     ENDIF
  6517.  
  6518. ;-----------------------------------------
  6519. ;    Synthesizer Knobs
  6520. ;-----------------------------------------
  6521. ;
  6522. ; pascal ComponentResult MusicGetKnobDescription(MusicComponent mc, long knobIndex, KnobDescription *mkd)
  6523. ;
  6524.     IF ¬ GENERATINGCFM THEN
  6525.         Macro
  6526.         _MusicGetKnobDescription
  6527.             dc.w     $2F3C
  6528.             dc.w     $0008
  6529.             dc.w     $002D
  6530.             moveq    #0,d0
  6531.             dc.w     $A82A
  6532.         EndM
  6533.     ELSE
  6534.         IMPORT    MusicGetKnobDescription
  6535.     ENDIF
  6536.  
  6537. ;
  6538. ; pascal ComponentResult MusicGetKnob(MusicComponent mc, long knobID)
  6539. ;
  6540.     IF ¬ GENERATINGCFM THEN
  6541.         Macro
  6542.         _MusicGetKnob
  6543.             dc.w     $2F3C
  6544.             dc.w     $0004
  6545.             dc.w     $0012
  6546.             moveq    #0,d0
  6547.             dc.w     $A82A
  6548.         EndM
  6549.     ELSE
  6550.         IMPORT    MusicGetKnob
  6551.     ENDIF
  6552.  
  6553. ;
  6554. ; pascal ComponentResult MusicSetKnob(MusicComponent mc, long knobID, long knobValue)
  6555. ;
  6556.     IF ¬ GENERATINGCFM THEN
  6557.         Macro
  6558.         _MusicSetKnob
  6559.             dc.w     $2F3C
  6560.             dc.w     $0008
  6561.             dc.w     $0013
  6562.             moveq    #0,d0
  6563.             dc.w     $A82A
  6564.         EndM
  6565.     ELSE
  6566.         IMPORT    MusicSetKnob
  6567.     ENDIF
  6568.  
  6569. ;
  6570. ; pascal ComponentResult MusicSetMasterTune(MusicComponent mc, long masterTune)
  6571. ;
  6572.     IF ¬ GENERATINGCFM THEN
  6573.         Macro
  6574.         _MusicSetMasterTune
  6575.             dc.w     $2F3C
  6576.             dc.w     $0004
  6577.             dc.w     $0020
  6578.             moveq    #0,d0
  6579.             dc.w     $A82A
  6580.         EndM
  6581.     ELSE
  6582.         IMPORT    MusicSetMasterTune
  6583.     ENDIF
  6584.  
  6585. ;
  6586. ; pascal ComponentResult MusicGetMasterTune(MusicComponent mc)
  6587. ;
  6588.     IF ¬ GENERATINGCFM THEN
  6589.         Macro
  6590.         _MusicGetMasterTune
  6591.             dc.w     $2F3C
  6592.             dc.w     $0000
  6593.             dc.w     $001F
  6594.             moveq    #0,d0
  6595.             dc.w     $A82A
  6596.         EndM
  6597.     ELSE
  6598.         IMPORT    MusicGetMasterTune
  6599.     ENDIF
  6600.  
  6601. ;-----------------------------------------
  6602. ;    Names of Instruments
  6603. ;-----------------------------------------
  6604. ;
  6605. ; pascal ComponentResult MusicGetPartName(MusicComponent mc, long part, Str31 name)
  6606. ;
  6607.     IF ¬ GENERATINGCFM THEN
  6608.         Macro
  6609.         _MusicGetPartName
  6610.             dc.w     $2F3C
  6611.             dc.w     $0008
  6612.             dc.w     $0014
  6613.             moveq    #0,d0
  6614.             dc.w     $A82A
  6615.         EndM
  6616.     ELSE
  6617.         IMPORT    MusicGetPartName
  6618.     ENDIF
  6619.  
  6620. ;
  6621. ; pascal ComponentResult MusicSetPartName(MusicComponent mc, long part, Str31 name)
  6622. ;
  6623.     IF ¬ GENERATINGCFM THEN
  6624.         Macro
  6625.         _MusicSetPartName
  6626.             dc.w     $2F3C
  6627.             dc.w     $0008
  6628.             dc.w     $0015
  6629.             moveq    #0,d0
  6630.             dc.w     $A82A
  6631.         EndM
  6632.     ELSE
  6633.         IMPORT    MusicSetPartName
  6634.     ENDIF
  6635.  
  6636. ;
  6637. ; pascal ComponentResult MusicFindTone(MusicComponent mc, ToneDescription *td, long *instrumentNumber, unsigned long *fit)
  6638. ;
  6639.     IF ¬ GENERATINGCFM THEN
  6640.         Macro
  6641.         _MusicFindTone
  6642.             dc.w     $2F3C
  6643.             dc.w     $000C
  6644.             dc.w     $0016
  6645.             moveq    #0,d0
  6646.             dc.w     $A82A
  6647.         EndM
  6648.     ELSE
  6649.         IMPORT    MusicFindTone
  6650.     ENDIF
  6651.  
  6652. kInstrumentNamesModifiable        EQU        1
  6653. kInstrumentNamesBoth            EQU        2
  6654.  
  6655. ;
  6656. ; pascal ComponentResult MusicGetInstrumentNames(MusicComponent mc, long modifiableInstruments, Handle *instrumentNames, Handle *instrumentCategoryLasts, Handle *instrumentCategoryNames)
  6657. ;
  6658.     IF ¬ GENERATINGCFM THEN
  6659.         Macro
  6660.         _MusicGetInstrumentNames
  6661.             dc.w     $2F3C
  6662.             dc.w     $0010
  6663.             dc.w     $001D
  6664.             moveq    #0,d0
  6665.             dc.w     $A82A
  6666.         EndM
  6667.     ELSE
  6668.         IMPORT    MusicGetInstrumentNames
  6669.     ENDIF
  6670.  
  6671. ;
  6672. ; pascal ComponentResult MusicGetDrumNames(MusicComponent mc, long modifiableInstruments, Handle *instrumentNumbers, Handle *instrumentNames)
  6673. ;
  6674.     IF ¬ GENERATINGCFM THEN
  6675.         Macro
  6676.         _MusicGetDrumNames
  6677.             dc.w     $2F3C
  6678.             dc.w     $000C
  6679.             dc.w     $001E
  6680.             moveq    #0,d0
  6681.             dc.w     $A82A
  6682.         EndM
  6683.     ELSE
  6684.         IMPORT    MusicGetDrumNames
  6685.     ENDIF
  6686.  
  6687. ;-----------------------------------------
  6688. ;    Realtime Actions
  6689. ;-----------------------------------------
  6690. ;
  6691. ; pascal ComponentResult MusicPlayNote(MusicComponent mc, long part, long pitch, long velocity)
  6692. ;
  6693.     IF ¬ GENERATINGCFM THEN
  6694.         Macro
  6695.         _MusicPlayNote
  6696.             dc.w     $2F3C
  6697.             dc.w     $000C
  6698.             dc.w     $0017
  6699.             moveq    #0,d0
  6700.             dc.w     $A82A
  6701.         EndM
  6702.     ELSE
  6703.         IMPORT    MusicPlayNote
  6704.     ENDIF
  6705.  
  6706. ;
  6707. ; pascal ComponentResult MusicResetPart(MusicComponent mc, long part)
  6708. ;
  6709.     IF ¬ GENERATINGCFM THEN
  6710.         Macro
  6711.         _MusicResetPart
  6712.             dc.w     $2F3C
  6713.             dc.w     $0004
  6714.             dc.w     $0018
  6715.             moveq    #0,d0
  6716.             dc.w     $A82A
  6717.         EndM
  6718.     ELSE
  6719.         IMPORT    MusicResetPart
  6720.     ENDIF
  6721.  
  6722. ;
  6723. ; pascal ComponentResult MusicSetPartController(MusicComponent mc, long part, long controllerNumber, long controllerValue)
  6724. ;
  6725.     IF ¬ GENERATINGCFM THEN
  6726.         Macro
  6727.         _MusicSetPartController
  6728.             dc.w     $2F3C
  6729.             dc.w     $000C
  6730.             dc.w     $0019
  6731.             moveq    #0,d0
  6732.             dc.w     $A82A
  6733.         EndM
  6734.     ELSE
  6735.         IMPORT    MusicSetPartController
  6736.     ENDIF
  6737.  
  6738. ;
  6739. ; pascal ComponentResult MusicGetPartController(MusicComponent mc, long part, long controllerNumber)
  6740. ;
  6741.     IF ¬ GENERATINGCFM THEN
  6742.         Macro
  6743.         _MusicGetPartController
  6744.             dc.w     $2F3C
  6745.             dc.w     $0008
  6746.             dc.w     $001A
  6747.             moveq    #0,d0
  6748.             dc.w     $A82A
  6749.         EndM
  6750.     ELSE
  6751.         IMPORT    MusicGetPartController
  6752.     ENDIF
  6753.  
  6754. ;-----------------------------------------
  6755. ;    Finding the Hardware
  6756. ;-----------------------------------------
  6757. ;
  6758. ; pascal ComponentResult MusicGetMIDIProc(MusicComponent mc, MusicMIDISendUPP *midiSendProc, long *refCon)
  6759. ;
  6760.     IF ¬ GENERATINGCFM THEN
  6761.         Macro
  6762.         _MusicGetMIDIProc
  6763.             dc.w     $2F3C
  6764.             dc.w     $0008
  6765.             dc.w     $001B
  6766.             moveq    #0,d0
  6767.             dc.w     $A82A
  6768.         EndM
  6769.     ELSE
  6770.         IMPORT    MusicGetMIDIProc
  6771.     ENDIF
  6772.  
  6773. ;
  6774. ; pascal ComponentResult MusicSetMIDIProc(MusicComponent mc, MusicMIDISendUPP midiSendProc, long refCon)
  6775. ;
  6776.     IF ¬ GENERATINGCFM THEN
  6777.         Macro
  6778.         _MusicSetMIDIProc
  6779.             dc.w     $2F3C
  6780.             dc.w     $0008
  6781.             dc.w     $001C
  6782.             moveq    #0,d0
  6783.             dc.w     $A82A
  6784.         EndM
  6785.     ELSE
  6786.         IMPORT    MusicSetMIDIProc
  6787.     ENDIF
  6788.  
  6789. ;
  6790. ; pascal ComponentResult MusicGetDeviceConnection(MusicComponent mc, long index, long *id1, long *id2)
  6791. ;
  6792.     IF ¬ GENERATINGCFM THEN
  6793.         Macro
  6794.         _MusicGetDeviceConnection
  6795.             dc.w     $2F3C
  6796.             dc.w     $000C
  6797.             dc.w     $0023
  6798.             moveq    #0,d0
  6799.             dc.w     $A82A
  6800.         EndM
  6801.     ELSE
  6802.         IMPORT    MusicGetDeviceConnection
  6803.     ENDIF
  6804.  
  6805. ;
  6806. ; pascal ComponentResult MusicUseDeviceConnection(MusicComponent mc, long id1, long id2)
  6807. ;
  6808.     IF ¬ GENERATINGCFM THEN
  6809.         Macro
  6810.         _MusicUseDeviceConnection
  6811.             dc.w     $2F3C
  6812.             dc.w     $0008
  6813.             dc.w     $0024
  6814.             moveq    #0,d0
  6815.             dc.w     $A82A
  6816.         EndM
  6817.     ELSE
  6818.         IMPORT    MusicUseDeviceConnection
  6819.     ENDIF
  6820.  
  6821. ;-----------------------------------------
  6822. ;    Component Based MIDIs
  6823. ;    (very optional calls)
  6824. ;-----------------------------------------
  6825. ;
  6826. ; pascal ComponentResult MusicGetMIDIPorts(MusicComponent mc, long *inputPortCount, long *outputPortCount)
  6827. ;
  6828.     IF ¬ GENERATINGCFM THEN
  6829.         Macro
  6830.         _MusicGetMIDIPorts
  6831.             dc.w     $2F3C
  6832.             dc.w     $0008
  6833.             dc.w     $0026
  6834.             moveq    #0,d0
  6835.             dc.w     $A82A
  6836.         EndM
  6837.     ELSE
  6838.         IMPORT    MusicGetMIDIPorts
  6839.     ENDIF
  6840.  
  6841. ;
  6842. ; pascal ComponentResult MusicSendMIDI(MusicComponent mc, long portIndex, MusicMIDIPacket *mp)
  6843. ;
  6844.     IF ¬ GENERATINGCFM THEN
  6845.         Macro
  6846.         _MusicSendMIDI
  6847.             dc.w     $2F3C
  6848.             dc.w     $0008
  6849.             dc.w     $0027
  6850.             moveq    #0,d0
  6851.             dc.w     $A82A
  6852.         EndM
  6853.     ELSE
  6854.         IMPORT    MusicSendMIDI
  6855.     ENDIF
  6856.  
  6857. ;
  6858. ; pascal ComponentResult MusicReceiveMIDI(MusicComponent mc, MusicMIDIReadHookUPP readHook, long refCon)
  6859. ;
  6860.     IF ¬ GENERATINGCFM THEN
  6861.         Macro
  6862.         _MusicReceiveMIDI
  6863.             dc.w     $2F3C
  6864.             dc.w     $0008
  6865.             dc.w     $0028
  6866.             moveq    #0,d0
  6867.             dc.w     $A82A
  6868.         EndM
  6869.     ELSE
  6870.         IMPORT    MusicReceiveMIDI
  6871.     ENDIF
  6872.  
  6873. ;-----------------------------------------
  6874. ;    Non-RealTime Support
  6875. ;-----------------------------------------
  6876. OfflineSampleType         RECORD    0
  6877. numChannels                 ds.l    1                                    ;number of channels,  ie mono = 1
  6878. sampleRate                 ds.l    1                                    ;sample rate in Apples Fixed point representation
  6879. sampleSize                 ds.w    1                                    ;number of bits in sample
  6880. sizeof                     EQU    *
  6881.                         ENDR
  6882.  
  6883. ; typedef struct OfflineSampleType  OfflineSampleType
  6884. ;
  6885. ; pascal ComponentResult MusicStartOffline(MusicComponent mc, unsigned long *numChannels, UnsignedFixed *sampleRate, unsigned short *sampleSize, MusicOfflineDataUPP dataProc, long dataProcRefCon)
  6886. ;
  6887.     IF ¬ GENERATINGCFM THEN
  6888.         Macro
  6889.         _MusicStartOffline
  6890.             dc.w     $2F3C
  6891.             dc.w     $0014
  6892.             dc.w     $0029
  6893.             moveq    #0,d0
  6894.             dc.w     $A82A
  6895.         EndM
  6896.     ELSE
  6897.         IMPORT    MusicStartOffline
  6898.     ENDIF
  6899.  
  6900. ;
  6901. ; pascal ComponentResult MusicSetOfflineTimeTo(MusicComponent mc, long newTimeStamp)
  6902. ;
  6903.     IF ¬ GENERATINGCFM THEN
  6904.         Macro
  6905.         _MusicSetOfflineTimeTo
  6906.             dc.w     $2F3C
  6907.             dc.w     $0004
  6908.             dc.w     $002A
  6909.             moveq    #0,d0
  6910.             dc.w     $A82A
  6911.         EndM
  6912.     ELSE
  6913.         IMPORT    MusicSetOfflineTimeTo
  6914.     ENDIF
  6915.  
  6916. ;-----------------------------------------
  6917. ;    Obsolete calls
  6918. ;-----------------------------------------
  6919. ;
  6920. ; pascal ComponentResult MusicGetInstrumentKnobDescriptionObsolete(MusicComponent mc, long knobIndex, void *mkd)
  6921. ;
  6922.     IF ¬ GENERATINGCFM THEN
  6923.         Macro
  6924.         _MusicGetInstrumentKnobDescriptionObsolete
  6925.             dc.w     $2F3C
  6926.             dc.w     $0008
  6927.             dc.w     $000D
  6928.             moveq    #0,d0
  6929.             dc.w     $A82A
  6930.         EndM
  6931.     ELSE
  6932.         IMPORT    MusicGetInstrumentKnobDescriptionObsolete
  6933.     ENDIF
  6934.  
  6935. ;
  6936. ; pascal ComponentResult MusicGetDrumKnobDescriptionObsolete(MusicComponent mc, long knobIndex, void *mkd)
  6937. ;
  6938.     IF ¬ GENERATINGCFM THEN
  6939.         Macro
  6940.         _MusicGetDrumKnobDescriptionObsolete
  6941.             dc.w     $2F3C
  6942.             dc.w     $0008
  6943.             dc.w     $000E
  6944.             moveq    #0,d0
  6945.             dc.w     $A82A
  6946.         EndM
  6947.     ELSE
  6948.         IMPORT    MusicGetDrumKnobDescriptionObsolete
  6949.     ENDIF
  6950.  
  6951. ;
  6952. ; pascal ComponentResult MusicGetKnobDescriptionObsolete(MusicComponent mc, long knobIndex, void *mkd)
  6953. ;
  6954.     IF ¬ GENERATINGCFM THEN
  6955.         Macro
  6956.         _MusicGetKnobDescriptionObsolete
  6957.             dc.w     $2F3C
  6958.             dc.w     $0008
  6959.             dc.w     $000F
  6960.             moveq    #0,d0
  6961.             dc.w     $A82A
  6962.         EndM
  6963.     ELSE
  6964.         IMPORT    MusicGetKnobDescriptionObsolete
  6965.     ENDIF
  6966.  
  6967.  
  6968. kInstrumentGetIndSelect            EQU        1
  6969. kInstrumentDisposeSelect        EQU        2
  6970. kInstrumentFindToneSelect        EQU        3
  6971. kInstrumentObsolete1            EQU        4
  6972. kInstrumentOpenResFileSelect    EQU        5
  6973. kInstrumentCloseResFileSelect    EQU        6
  6974. kInstrumentLast                    EQU        7
  6975.  
  6976. ;
  6977. ; pascal ComponentResult InstrumentGetInd(ComponentInstance inst, long index, AtomicInstrument *atomicInst)
  6978. ;
  6979.     IF ¬ GENERATINGCFM THEN
  6980.         Macro
  6981.         _InstrumentGetInd
  6982.             dc.w     $2F3C
  6983.             dc.w     $0008
  6984.             dc.w     $0001
  6985.             moveq    #0,d0
  6986.             dc.w     $A82A
  6987.         EndM
  6988.     ELSE
  6989.         IMPORT    InstrumentGetInd
  6990.     ENDIF
  6991.  
  6992. ;
  6993. ; pascal ComponentResult InstrumentDispose(ComponentInstance inst, AtomicInstrument atomicInst)
  6994. ;
  6995.     IF ¬ GENERATINGCFM THEN
  6996.         Macro
  6997.         _InstrumentDispose
  6998.             dc.w     $2F3C
  6999.             dc.w     $0004
  7000.             dc.w     $0002
  7001.             moveq    #0,d0
  7002.             dc.w     $A82A
  7003.         EndM
  7004.     ELSE
  7005.         IMPORT    InstrumentDispose
  7006.     ENDIF
  7007.  
  7008. ;
  7009. ; pascal ComponentResult InstrumentFindTone(ComponentInstance inst, ToneDescription *td)
  7010. ;
  7011.     IF ¬ GENERATINGCFM THEN
  7012.         Macro
  7013.         _InstrumentFindTone
  7014.             dc.w     $2F3C
  7015.             dc.w     $0004
  7016.             dc.w     $0003
  7017.             moveq    #0,d0
  7018.             dc.w     $A82A
  7019.         EndM
  7020.     ELSE
  7021.         IMPORT    InstrumentFindTone
  7022.     ENDIF
  7023.  
  7024. ; Mask bit for returned value by InstrumentFind.
  7025.     kExactMatch: SET 0x20000
  7026.     kRecommendedSubstitute: SET 0x10000
  7027.     kQualityField: SET 0xFF000000
  7028.     kRoland8BitQuality: SET 0x05000000
  7029. ;
  7030. ; pascal ComponentResult InstrumentOpenResFile(ComponentInstance inst, long index, short *resRefNum, short *instResID)
  7031. ;
  7032.     IF ¬ GENERATINGCFM THEN
  7033.         Macro
  7034.         _InstrumentOpenResFile
  7035.             dc.w     $2F3C
  7036.             dc.w     $000C
  7037.             dc.w     $0005
  7038.             moveq    #0,d0
  7039.             dc.w     $A82A
  7040.         EndM
  7041.     ELSE
  7042.         IMPORT    InstrumentOpenResFile
  7043.     ENDIF
  7044.  
  7045. ;
  7046. ; pascal ComponentResult InstrumentCloseResFile(ComponentInstance inst, short resRefNum)
  7047. ;
  7048.     IF ¬ GENERATINGCFM THEN
  7049.         Macro
  7050.         _InstrumentCloseResFile
  7051.             dc.w     $2F3C
  7052.             dc.w     $0002
  7053.             dc.w     $0006
  7054.             moveq    #0,d0
  7055.             dc.w     $A82A
  7056.         EndM
  7057.     ELSE
  7058.         IMPORT    InstrumentCloseResFile
  7059.     ENDIF
  7060.  
  7061. ;--------------------------
  7062. ;    Types
  7063. ;--------------------------
  7064. ; typedef void                 *NoteChannel
  7065.  
  7066. kSynthesizerConnectionMono        EQU        1                    ; if set, and synth can be mono/poly, then the partCount channels from the system channel are hogged 
  7067. kSynthesizerConnectionMMgr        EQU        2                    ; this connection imported from the MIDI Mgr 
  7068. kSynthesizerConnectionOMS        EQU        4                    ; this connection imported from OMS 
  7069. kSynthesizerConnectionQT        EQU        8                    ; this connection is a QuickTime-only port 
  7070.  
  7071. ; used for MIDI device only 
  7072. SynthesizerConnections     RECORD    0
  7073. clientID                 ds.l    1
  7074. inputPortID                 ds.l    1                                    ; terminology death: this port is used to SEND to the midi synth 
  7075. outputPortID             ds.l    1                                    ; terminology death: this port receives from a keyboard or other control device 
  7076. midiChannel                 ds.l    1                                    ; The system channel; others are configurable (or the nubus slot number) 
  7077. flags                     ds.l    1
  7078. unique                     ds.l    1                                    ; unique id may be used instead of index, to getinfo and unregister calls 
  7079. reserved1                 ds.l    1                                    ; should be zero 
  7080. reserved2                 ds.l    1                                    ; should be zero 
  7081. sizeof                     EQU    *
  7082.                         ENDR
  7083.  
  7084. ; typedef struct SynthesizerConnections  SynthesizerConnections
  7085. QTMIDIPort                 RECORD    0
  7086. portConnections             ds        SynthesizerConnections
  7087. portName                 ds.l    16
  7088. sizeof                     EQU    *
  7089.                         ENDR
  7090.  
  7091. ; typedef struct QTMIDIPort  QTMIDIPort
  7092.     kNoteRequestNoGM: SET 1
  7093.     kNoteRequestNoSynthType: SET 2
  7094. NoteRequestInfo         RECORD    0
  7095. flags                     ds.b    1                                    ; 1: dont accept GM match, 2: dont accept same-synth-type match 
  7096. reserved                 ds.b    1                                    ; must be zero 
  7097. polyphony                 ds.w    1                                    ; Maximum number of voices 
  7098. typicalPolyphony         ds.l    1                                    ; Hint for level mixing 
  7099. sizeof                     EQU    *
  7100.                         ENDR
  7101.  
  7102. ; typedef struct NoteRequestInfo  NoteRequestInfo
  7103. NoteRequest             RECORD    0
  7104. info                     ds        NoteRequestInfo
  7105. tone                     ds        ToneDescription
  7106. sizeof                     EQU    *
  7107.                         ENDR
  7108.  
  7109. ; typedef struct NoteRequest  NoteRequest
  7110.  
  7111. kNAFirstSelector                EQU        -7
  7112. kNATargetSelect                    EQU        -6
  7113. kNARegisterSelect                EQU        -5
  7114. kNAVersionSelect                EQU        -4
  7115. kNACanDoSelect                    EQU        -3
  7116. kNACloseSelect                    EQU        -2
  7117. kNAOpenSelect                    EQU        -1
  7118. kNARegisterMusicDeviceSelect    EQU        0
  7119. kNAUnregisterMusicDeviceSelect    EQU        1
  7120. kNAGetRegisteredMusicDeviceSelect EQU        2
  7121. kNASaveMusicConfigurationSelect    EQU        3
  7122. kNANewNoteChannelSelect            EQU        4
  7123. kNADisposeNoteChannelSelect        EQU        5
  7124. kNAGetNoteChannelInfoSelect        EQU        6
  7125. kNAPrerollNoteChannelSelect        EQU        7
  7126. kNAUnrollNoteChannelSelect        EQU        8
  7127. kNAEngageNoteChannelSelect        EQU        9
  7128. kNADisengageNoteChannelSelect    EQU        10
  7129. kNASetNoteChannelVolumeSelect    EQU        11
  7130. kNAResetNoteChannelSelect        EQU        12
  7131. kNAPlayNoteSelect                EQU        13
  7132. kNASetControllerSelect            EQU        14
  7133. kNASetKnobSelect                EQU        15
  7134. kNAFindNoteChannelToneSelect    EQU        16
  7135. kNASetInstrumentNumberSelect    EQU        17
  7136. kNAPickInstrumentSelect            EQU        18
  7137. kNAPickArrangementSelect        EQU        19
  7138. kNAGetStatusBlockSelect            EQU        20
  7139. kNASetDefaultMIDIInputSelect    EQU        21
  7140. kNAGetDefaultMIDIInputSelect    EQU        22
  7141. kNAGetNoteChannelStateSelect    EQU        23
  7142. kNASetNoteChannelStateSelect    EQU        24
  7143. kNAUseDefaultMIDIInputSelect    EQU        25
  7144. kNALoseDefaultMIDIInputSelect    EQU        26
  7145. kNAStuffToneDescriptionSelect    EQU        27
  7146. kNACopyrightDialogSelect        EQU        28
  7147. kNADummyOneSelect                EQU        29
  7148. kNADummyTwoSelect                EQU        30
  7149. kNAGetIndNoteChannelSelect        EQU        31
  7150. kNAPlayNote2Select                EQU        32
  7151. kNAGetMIDIPortsSelect            EQU        33
  7152. kNAGetNoteRequestSelect            EQU        34
  7153. kNASendMIDISelect                EQU        35
  7154. kNAPickEditInstrumentSelect        EQU        36
  7155. kNANewNoteChannelFromInstrumentSelect EQU        37
  7156. kNASetAtomicInstrumentSelect    EQU        38
  7157. kNALastSelector                    EQU        39
  7158.  
  7159. ; typedef ComponentInstance  NoteAllocator
  7160.  
  7161. kPickDontMix                    EQU        1                    ; dont mix instruments with drum sounds 
  7162. kPickSameSynth                    EQU        2                    ; only allow the same device that went in, to come out 
  7163. kPickUserInsts                    EQU        4                    ; show user insts in addition to ROM voices 
  7164. kPickEditAllowEdit                EQU        8                    ; lets user switch over to edit mode 
  7165. kPickEditAllowPick                EQU        16                    ; lets the user switch over to pick mode 
  7166. kPickEditSynthGlobal            EQU        32                    ; edit the global knobs of the synth 
  7167. kPickEditControllers            EQU        64                    ; edit the controllers of the notechannel 
  7168.  
  7169. kNoteAllocatorType                EQU        'nota'
  7170.  
  7171. ;--------------------------------
  7172. ;    Note Allocator Prototypes
  7173. ;--------------------------------
  7174. ;
  7175. ; * System Configuration
  7176. ;
  7177. ; pascal ComponentResult NARegisterMusicDevice(NoteAllocator na, OSType synthType, Str31 name, SynthesizerConnections *connections)
  7178. ;
  7179.     IF ¬ GENERATINGCFM THEN
  7180.         Macro
  7181.         _NARegisterMusicDevice
  7182.             dc.w     $2F3C
  7183.             dc.w     $000C
  7184.             dc.w     $0000
  7185.             moveq    #0,d0
  7186.             dc.w     $A82A
  7187.         EndM
  7188.     ELSE
  7189.         IMPORT    NARegisterMusicDevice
  7190.     ENDIF
  7191.  
  7192. ;
  7193. ; pascal ComponentResult NAUnregisterMusicDevice(NoteAllocator na, long index)
  7194. ;
  7195.     IF ¬ GENERATINGCFM THEN
  7196.         Macro
  7197.         _NAUnregisterMusicDevice
  7198.             dc.w     $2F3C
  7199.             dc.w     $0004
  7200.             dc.w     $0001
  7201.             moveq    #0,d0
  7202.             dc.w     $A82A
  7203.         EndM
  7204.     ELSE
  7205.         IMPORT    NAUnregisterMusicDevice
  7206.     ENDIF
  7207.  
  7208. ;
  7209. ; pascal ComponentResult NAGetRegisteredMusicDevice(NoteAllocator na, long index, OSType *synthType, Str31 name, SynthesizerConnections *connections, MusicComponent *mc)
  7210. ;
  7211.     IF ¬ GENERATINGCFM THEN
  7212.         Macro
  7213.         _NAGetRegisteredMusicDevice
  7214.             dc.w     $2F3C
  7215.             dc.w     $0014
  7216.             dc.w     $0002
  7217.             moveq    #0,d0
  7218.             dc.w     $A82A
  7219.         EndM
  7220.     ELSE
  7221.         IMPORT    NAGetRegisteredMusicDevice
  7222.     ENDIF
  7223.  
  7224. ;
  7225. ; pascal ComponentResult NASetDefaultMIDIInput(NoteAllocator na, SynthesizerConnections *sc)
  7226. ;
  7227.     IF ¬ GENERATINGCFM THEN
  7228.         Macro
  7229.         _NASetDefaultMIDIInput
  7230.             dc.w     $2F3C
  7231.             dc.w     $0004
  7232.             dc.w     $0015
  7233.             moveq    #0,d0
  7234.             dc.w     $A82A
  7235.         EndM
  7236.     ELSE
  7237.         IMPORT    NASetDefaultMIDIInput
  7238.     ENDIF
  7239.  
  7240. ;
  7241. ; pascal ComponentResult NAGetDefaultMIDIInput(NoteAllocator na, SynthesizerConnections *sc)
  7242. ;
  7243.     IF ¬ GENERATINGCFM THEN
  7244.         Macro
  7245.         _NAGetDefaultMIDIInput
  7246.             dc.w     $2F3C
  7247.             dc.w     $0004
  7248.             dc.w     $0016
  7249.             moveq    #0,d0
  7250.             dc.w     $A82A
  7251.         EndM
  7252.     ELSE
  7253.         IMPORT    NAGetDefaultMIDIInput
  7254.     ENDIF
  7255.  
  7256. ;
  7257. ; pascal ComponentResult NASaveMusicConfiguration(NoteAllocator na)
  7258. ;
  7259.     IF ¬ GENERATINGCFM THEN
  7260.         Macro
  7261.         _NASaveMusicConfiguration
  7262.             dc.w     $2F3C
  7263.             dc.w     $0000
  7264.             dc.w     $0003
  7265.             moveq    #0,d0
  7266.             dc.w     $A82A
  7267.         EndM
  7268.     ELSE
  7269.         IMPORT    NASaveMusicConfiguration
  7270.     ENDIF
  7271.  
  7272. ;
  7273. ; * Allocation
  7274. ;
  7275. ; pascal ComponentResult NANewNoteChannel(NoteAllocator na, NoteRequest *noteRequest, NoteChannel *outChannel)
  7276. ;
  7277.     IF ¬ GENERATINGCFM THEN
  7278.         Macro
  7279.         _NANewNoteChannel
  7280.             dc.w     $2F3C
  7281.             dc.w     $0008
  7282.             dc.w     $0004
  7283.             moveq    #0,d0
  7284.             dc.w     $A82A
  7285.         EndM
  7286.     ELSE
  7287.         IMPORT    NANewNoteChannel
  7288.     ENDIF
  7289.  
  7290. ;
  7291. ; pascal ComponentResult NANewNoteChannelFromInstrument(NoteAllocator na, AtomicInstrumentPtr instrument, NoteChannel *outChannel)
  7292. ;
  7293.     IF ¬ GENERATINGCFM THEN
  7294.         Macro
  7295.         _NANewNoteChannelFromInstrument
  7296.             dc.w     $2F3C
  7297.             dc.w     $0008
  7298.             dc.w     $0025
  7299.             moveq    #0,d0
  7300.             dc.w     $A82A
  7301.         EndM
  7302.     ELSE
  7303.         IMPORT    NANewNoteChannelFromInstrument
  7304.     ENDIF
  7305.  
  7306. ;
  7307. ; pascal ComponentResult NADisposeNoteChannel(NoteAllocator na, NoteChannel noteChannel)
  7308. ;
  7309.     IF ¬ GENERATINGCFM THEN
  7310.         Macro
  7311.         _NADisposeNoteChannel
  7312.             dc.w     $2F3C
  7313.             dc.w     $0004
  7314.             dc.w     $0005
  7315.             moveq    #0,d0
  7316.             dc.w     $A82A
  7317.         EndM
  7318.     ELSE
  7319.         IMPORT    NADisposeNoteChannel
  7320.     ENDIF
  7321.  
  7322. ;
  7323. ; pascal ComponentResult NAGetNoteChannelInfo(NoteAllocator na, NoteChannel noteChannel, long *index, long *part)
  7324. ;
  7325.     IF ¬ GENERATINGCFM THEN
  7326.         Macro
  7327.         _NAGetNoteChannelInfo
  7328.             dc.w     $2F3C
  7329.             dc.w     $000C
  7330.             dc.w     $0006
  7331.             moveq    #0,d0
  7332.             dc.w     $A82A
  7333.         EndM
  7334.     ELSE
  7335.         IMPORT    NAGetNoteChannelInfo
  7336.     ENDIF
  7337.  
  7338. ;
  7339. ; pascal ComponentResult NAGetNoteRequest(NoteAllocator na, NoteChannel noteChannel, NoteRequest *nrOut)
  7340. ;
  7341.     IF ¬ GENERATINGCFM THEN
  7342.         Macro
  7343.         _NAGetNoteRequest
  7344.             dc.w     $2F3C
  7345.             dc.w     $0008
  7346.             dc.w     $0022
  7347.             moveq    #0,d0
  7348.             dc.w     $A82A
  7349.         EndM
  7350.     ELSE
  7351.         IMPORT    NAGetNoteRequest
  7352.     ENDIF
  7353.  
  7354. ;
  7355. ; pascal ComponentResult NAUseDefaultMIDIInput(NoteAllocator na, MusicMIDIReadHookUPP readHook, long refCon, unsigned long flags)
  7356. ;
  7357.     IF ¬ GENERATINGCFM THEN
  7358.         Macro
  7359.         _NAUseDefaultMIDIInput
  7360.             dc.w     $2F3C
  7361.             dc.w     $000C
  7362.             dc.w     $0019
  7363.             moveq    #0,d0
  7364.             dc.w     $A82A
  7365.         EndM
  7366.     ELSE
  7367.         IMPORT    NAUseDefaultMIDIInput
  7368.     ENDIF
  7369.  
  7370. ;
  7371. ; pascal ComponentResult NALoseDefaultMIDIInput(NoteAllocator na)
  7372. ;
  7373.     IF ¬ GENERATINGCFM THEN
  7374.         Macro
  7375.         _NALoseDefaultMIDIInput
  7376.             dc.w     $2F3C
  7377.             dc.w     $0000
  7378.             dc.w     $001A
  7379.             moveq    #0,d0
  7380.             dc.w     $A82A
  7381.         EndM
  7382.     ELSE
  7383.         IMPORT    NALoseDefaultMIDIInput
  7384.     ENDIF
  7385.  
  7386. ;
  7387. ; pascal ComponentResult NAGetMIDIPorts(NoteAllocator na, Handle *inputPorts, Handle *outputPorts)
  7388. ;
  7389.     IF ¬ GENERATINGCFM THEN
  7390.         Macro
  7391.         _NAGetMIDIPorts
  7392.             dc.w     $2F3C
  7393.             dc.w     $0008
  7394.             dc.w     $0021
  7395.             moveq    #0,d0
  7396.             dc.w     $A82A
  7397.         EndM
  7398.     ELSE
  7399.         IMPORT    NAGetMIDIPorts
  7400.     ENDIF
  7401.  
  7402. ;
  7403. ; * Setup
  7404. ;
  7405. ; pascal ComponentResult NAPrerollNoteChannel(NoteAllocator na, NoteChannel noteChannel)
  7406. ;
  7407.     IF ¬ GENERATINGCFM THEN
  7408.         Macro
  7409.         _NAPrerollNoteChannel
  7410.             dc.w     $2F3C
  7411.             dc.w     $0004
  7412.             dc.w     $0007
  7413.             moveq    #0,d0
  7414.             dc.w     $A82A
  7415.         EndM
  7416.     ELSE
  7417.         IMPORT    NAPrerollNoteChannel
  7418.     ENDIF
  7419.  
  7420. ;
  7421. ; pascal ComponentResult NAUnrollNoteChannel(NoteAllocator na, NoteChannel noteChannel)
  7422. ;
  7423.     IF ¬ GENERATINGCFM THEN
  7424.         Macro
  7425.         _NAUnrollNoteChannel
  7426.             dc.w     $2F3C
  7427.             dc.w     $0004
  7428.             dc.w     $0008
  7429.             moveq    #0,d0
  7430.             dc.w     $A82A
  7431.         EndM
  7432.     ELSE
  7433.         IMPORT    NAUnrollNoteChannel
  7434.     ENDIF
  7435.  
  7436. ;
  7437. ; pascal ComponentResult NAEngageNoteChannel(NoteAllocator na, NoteChannel noteChannel)
  7438. ;
  7439.     IF ¬ GENERATINGCFM THEN
  7440.         Macro
  7441.         _NAEngageNoteChannel
  7442.             dc.w     $2F3C
  7443.             dc.w     $0004
  7444.             dc.w     $0009
  7445.             moveq    #0,d0
  7446.             dc.w     $A82A
  7447.         EndM
  7448.     ELSE
  7449.         IMPORT    NAEngageNoteChannel
  7450.     ENDIF
  7451.  
  7452. ;
  7453. ; pascal ComponentResult NADisengageNoteChannel(NoteAllocator na, NoteChannel noteChannel, long silenceNotes)
  7454. ;
  7455.     IF ¬ GENERATINGCFM THEN
  7456.         Macro
  7457.         _NADisengageNoteChannel
  7458.             dc.w     $2F3C
  7459.             dc.w     $0008
  7460.             dc.w     $000A
  7461.             moveq    #0,d0
  7462.             dc.w     $A82A
  7463.         EndM
  7464.     ELSE
  7465.         IMPORT    NADisengageNoteChannel
  7466.     ENDIF
  7467.  
  7468. ;
  7469. ; pascal ComponentResult NAGetNoteChannelState(NoteAllocator na, NoteChannel noteChannel, long instrumentNumber, TimeValue t, Handle *state)
  7470. ;
  7471.     IF ¬ GENERATINGCFM THEN
  7472.         Macro
  7473.         _NAGetNoteChannelState
  7474.             dc.w     $2F3C
  7475.             dc.w     $0010
  7476.             dc.w     $0017
  7477.             moveq    #0,d0
  7478.             dc.w     $A82A
  7479.         EndM
  7480.     ELSE
  7481.         IMPORT    NAGetNoteChannelState
  7482.     ENDIF
  7483.  
  7484. ;
  7485. ; pascal ComponentResult NASetNoteChannelState(NoteAllocator na, NoteChannel noteChannel, long instrumentNumber, unsigned long *state)
  7486. ;
  7487.     IF ¬ GENERATINGCFM THEN
  7488.         Macro
  7489.         _NASetNoteChannelState
  7490.             dc.w     $2F3C
  7491.             dc.w     $000C
  7492.             dc.w     $0018
  7493.             moveq    #0,d0
  7494.             dc.w     $A82A
  7495.         EndM
  7496.     ELSE
  7497.         IMPORT    NASetNoteChannelState
  7498.     ENDIF
  7499.  
  7500. ;
  7501. ; pascal ComponentResult NAResetNoteChannel(NoteAllocator na, NoteChannel noteChannel)
  7502. ;
  7503.     IF ¬ GENERATINGCFM THEN
  7504.         Macro
  7505.         _NAResetNoteChannel
  7506.             dc.w     $2F3C
  7507.             dc.w     $0004
  7508.             dc.w     $000C
  7509.             moveq    #0,d0
  7510.             dc.w     $A82A
  7511.         EndM
  7512.     ELSE
  7513.         IMPORT    NAResetNoteChannel
  7514.     ENDIF
  7515.  
  7516. ;
  7517. ; pascal ComponentResult NASetNoteChannelVolume(NoteAllocator na, NoteChannel noteChannel, Fixed volume)
  7518. ;
  7519.     IF ¬ GENERATINGCFM THEN
  7520.         Macro
  7521.         _NASetNoteChannelVolume
  7522.             dc.w     $2F3C
  7523.             dc.w     $0008
  7524.             dc.w     $000B
  7525.             moveq    #0,d0
  7526.             dc.w     $A82A
  7527.         EndM
  7528.     ELSE
  7529.         IMPORT    NASetNoteChannelVolume
  7530.     ENDIF
  7531.  
  7532. ;
  7533. ; pascal ComponentResult NASetAtomicInstrument(NoteAllocator na, NoteChannel noteChannel, AtomicInstrumentPtr instrument, long flags)
  7534. ;
  7535.     IF ¬ GENERATINGCFM THEN
  7536.         Macro
  7537.         _NASetAtomicInstrument
  7538.             dc.w     $2F3C
  7539.             dc.w     $000C
  7540.             dc.w     $0026
  7541.             moveq    #0,d0
  7542.             dc.w     $A82A
  7543.         EndM
  7544.     ELSE
  7545.         IMPORT    NASetAtomicInstrument
  7546.     ENDIF
  7547.  
  7548. ;
  7549. ; * Control
  7550. ;
  7551. ; pascal ComponentResult NAPlayNote(NoteAllocator na, NoteChannel noteChannel, long pitch, long velocity)
  7552. ;
  7553.     IF ¬ GENERATINGCFM THEN
  7554.         Macro
  7555.         _NAPlayNote
  7556.             dc.w     $2F3C
  7557.             dc.w     $000C
  7558.             dc.w     $000D
  7559.             moveq    #0,d0
  7560.             dc.w     $A82A
  7561.         EndM
  7562.     ELSE
  7563.         IMPORT    NAPlayNote
  7564.     ENDIF
  7565.  
  7566. ;
  7567. ; pascal ComponentResult NAPlayNote2(NoteAllocator na, NoteChannel noteChannel, long pitch, long velocity, TimeValue offTime)
  7568. ;
  7569.     IF ¬ GENERATINGCFM THEN
  7570.         Macro
  7571.         _NAPlayNote2
  7572.             dc.w     $2F3C
  7573.             dc.w     $0010
  7574.             dc.w     $0020
  7575.             moveq    #0,d0
  7576.             dc.w     $A82A
  7577.         EndM
  7578.     ELSE
  7579.         IMPORT    NAPlayNote2
  7580.     ENDIF
  7581.  
  7582. ;
  7583. ; pascal ComponentResult NASetController(NoteAllocator na, NoteChannel noteChannel, long controllerNumber, long controllerValue)
  7584. ;
  7585.     IF ¬ GENERATINGCFM THEN
  7586.         Macro
  7587.         _NASetController
  7588.             dc.w     $2F3C
  7589.             dc.w     $000C
  7590.             dc.w     $000E
  7591.             moveq    #0,d0
  7592.             dc.w     $A82A
  7593.         EndM
  7594.     ELSE
  7595.         IMPORT    NASetController
  7596.     ENDIF
  7597.  
  7598. ;
  7599. ; pascal ComponentResult NASetKnob(NoteAllocator na, NoteChannel noteChannel, long knobNumber, long knobValue)
  7600. ;
  7601.     IF ¬ GENERATINGCFM THEN
  7602.         Macro
  7603.         _NASetKnob
  7604.             dc.w     $2F3C
  7605.             dc.w     $000C
  7606.             dc.w     $000F
  7607.             moveq    #0,d0
  7608.             dc.w     $A82A
  7609.         EndM
  7610.     ELSE
  7611.         IMPORT    NASetKnob
  7612.     ENDIF
  7613.  
  7614. ;
  7615. ; pascal ComponentResult NAFindNoteChannelTone(NoteAllocator na, NoteChannel noteChannel, ToneDescription *td, long *instrumentNumber)
  7616. ;
  7617.     IF ¬ GENERATINGCFM THEN
  7618.         Macro
  7619.         _NAFindNoteChannelTone
  7620.             dc.w     $2F3C
  7621.             dc.w     $000C
  7622.             dc.w     $0010
  7623.             moveq    #0,d0
  7624.             dc.w     $A82A
  7625.         EndM
  7626.     ELSE
  7627.         IMPORT    NAFindNoteChannelTone
  7628.     ENDIF
  7629.  
  7630. ;
  7631. ; pascal ComponentResult NASetInstrumentNumber(NoteAllocator na, NoteChannel noteChannel, long instrumentNumber)
  7632. ;
  7633.     IF ¬ GENERATINGCFM THEN
  7634.         Macro
  7635.         _NASetInstrumentNumber
  7636.             dc.w     $2F3C
  7637.             dc.w     $0008
  7638.             dc.w     $0011
  7639.             moveq    #0,d0
  7640.             dc.w     $A82A
  7641.         EndM
  7642.     ELSE
  7643.         IMPORT    NASetInstrumentNumber
  7644.     ENDIF
  7645.  
  7646. ;
  7647. ; pascal ComponentResult NASetNoteChannelInstrument(NoteAllocator na, NoteChannel noteChannel, long instrumentNumber)
  7648. ;
  7649.     IF ¬ GENERATINGCFM THEN
  7650.         Macro
  7651.         _NASetNoteChannelInstrument
  7652.             dc.w     $2F3C
  7653.             dc.w     $0008
  7654.             dc.w     $0011
  7655.             moveq    #0,d0
  7656.             dc.w     $A82A
  7657.         EndM
  7658.     ELSE
  7659.         IMPORT    NASetNoteChannelInstrument
  7660.     ENDIF
  7661.  
  7662. ;
  7663. ; pascal ComponentResult NASendMIDI(NoteAllocator na, NoteChannel noteChannel, MusicMIDIPacket *mp)
  7664. ;
  7665.     IF ¬ GENERATINGCFM THEN
  7666.         Macro
  7667.         _NASendMIDI
  7668.             dc.w     $2F3C
  7669.             dc.w     $0008
  7670.             dc.w     $0023
  7671.             moveq    #0,d0
  7672.             dc.w     $A82A
  7673.         EndM
  7674.     ELSE
  7675.         IMPORT    NASendMIDI
  7676.     ENDIF
  7677.  
  7678. ;
  7679. ; * User Interface
  7680. ;
  7681. ; pascal ComponentResult NAPickInstrument(NoteAllocator na, ModalFilterUPP filterProc, StringPtr prompt, ToneDescription *sd, unsigned long flags, long refCon, long reserved1, long reserved2)
  7682. ;
  7683.     IF ¬ GENERATINGCFM THEN
  7684.         Macro
  7685.         _NAPickInstrument
  7686.             dc.w     $2F3C
  7687.             dc.w     $001C
  7688.             dc.w     $0012
  7689.             moveq    #0,d0
  7690.             dc.w     $A82A
  7691.         EndM
  7692.     ELSE
  7693.         IMPORT    NAPickInstrument
  7694.     ENDIF
  7695.  
  7696. ;
  7697. ; pascal ComponentResult NAStuffToneDescription(NoteAllocator na, long gmNumber, ToneDescription *td)
  7698. ;
  7699.     IF ¬ GENERATINGCFM THEN
  7700.         Macro
  7701.         _NAStuffToneDescription
  7702.             dc.w     $2F3C
  7703.             dc.w     $0008
  7704.             dc.w     $001B
  7705.             moveq    #0,d0
  7706.             dc.w     $A82A
  7707.         EndM
  7708.     ELSE
  7709.         IMPORT    NAStuffToneDescription
  7710.     ENDIF
  7711.  
  7712. ;
  7713. ; pascal ComponentResult NAPickArrangement(NoteAllocator na, ModalFilterUPP filterProc, StringPtr prompt, long partCount, NoteRequest *noteRequestList, Track t, StringPtr songName)
  7714. ;
  7715.     IF ¬ GENERATINGCFM THEN
  7716.         Macro
  7717.         _NAPickArrangement
  7718.             dc.w     $2F3C
  7719.             dc.w     $0018
  7720.             dc.w     $0013
  7721.             moveq    #0,d0
  7722.             dc.w     $A82A
  7723.         EndM
  7724.     ELSE
  7725.         IMPORT    NAPickArrangement
  7726.     ENDIF
  7727.  
  7728. ;
  7729. ; pascal ComponentResult NACopyrightDialog(NoteAllocator na, PicHandle p, StringPtr author, StringPtr copyright, StringPtr other, StringPtr title, ModalFilterUPP filterProc, long refCon)
  7730. ;
  7731.     IF ¬ GENERATINGCFM THEN
  7732.         Macro
  7733.         _NACopyrightDialog
  7734.             dc.w     $2F3C
  7735.             dc.w     $001C
  7736.             dc.w     $001C
  7737.             moveq    #0,d0
  7738.             dc.w     $A82A
  7739.         EndM
  7740.     ELSE
  7741.         IMPORT    NACopyrightDialog
  7742.     ENDIF
  7743.  
  7744. ;
  7745. ; pascal ComponentResult NAPickEditInstrument(NoteAllocator na, ModalFilterUPP filterProc, StringPtr prompt, long refCon, NoteChannel nc, AtomicInstrument ai, long flags)
  7746. ;
  7747.     IF ¬ GENERATINGCFM THEN
  7748.         Macro
  7749.         _NAPickEditInstrument
  7750.             dc.w     $2F3C
  7751.             dc.w     $0018
  7752.             dc.w     $0024
  7753.             moveq    #0,d0
  7754.             dc.w     $A82A
  7755.         EndM
  7756.     ELSE
  7757.         IMPORT    NAPickEditInstrument
  7758.     ENDIF
  7759.  
  7760. ;
  7761. ; * Note Allocator interior views
  7762. NAStatPiece             RECORD    0
  7763. clientName                 ds.l    8
  7764. synthesizerName             ds.l    8
  7765. part                     ds.l    1
  7766. midiChannel                 ds.l    1
  7767. polyphony                 ds.l    1
  7768. valid                     ds.l    1
  7769. sizeof                     EQU    *
  7770.                         ENDR
  7771.  
  7772. ; typedef struct NAStatPiece  NAStatPiece
  7773. NAStat                     RECORD    0
  7774. pieceCount                 ds.l    1
  7775. piece                     ds.b    64 * NAStatPiece.sizeof
  7776. sizeof                     EQU    *
  7777.                         ENDR
  7778.  
  7779. ; typedef struct NAStat     NAStat
  7780. ;
  7781. ; pascal ComponentResult NAGetStatusBlock(NoteAllocator na, NAStat *stat)
  7782. ;
  7783.     IF ¬ GENERATINGCFM THEN
  7784.         Macro
  7785.         _NAGetStatusBlock
  7786.             dc.w     $2F3C
  7787.             dc.w     $0004
  7788.             dc.w     $0014
  7789.             moveq    #0,d0
  7790.             dc.w     $A82A
  7791.         EndM
  7792.     ELSE
  7793.         IMPORT    NAGetStatusBlock
  7794.     ENDIF
  7795.  
  7796. ;
  7797. ; pascal ComponentResult NAGetIndNoteChannel(NoteAllocator na, long index, NoteChannel *nc)
  7798. ;
  7799.     IF ¬ GENERATINGCFM THEN
  7800.         Macro
  7801.         _NAGetIndNoteChannel
  7802.             dc.w     $2F3C
  7803.             dc.w     $0008
  7804.             dc.w     $001F
  7805.             moveq    #0,d0
  7806.             dc.w     $A82A
  7807.         EndM
  7808.     ELSE
  7809.         IMPORT    NAGetIndNoteChannel
  7810.     ENDIF
  7811.  
  7812. ;--------------------------
  7813. ;    Types
  7814. ;--------------------------
  7815.  
  7816. kTuneQueueDepth                    EQU        8                    ; Deepest you can queue tune segments 
  7817.  
  7818. TuneStatus                 RECORD    0
  7819. tune                     ds.l    1                                    ; currently playing tune 
  7820. tunePtr                     ds.l    1                                    ; position within currently playing piece 
  7821. time                     ds.l    1                                    ; current tune time 
  7822. queueCount                 ds.w    1                                    ; how many pieces queued up? 
  7823. queueSpots                 ds.w    1                                    ; How many more tunepieces can be queued 
  7824. queueTime                 ds.l    1                                    ; How much time is queued up? (can be very inaccurate) 
  7825. reserved                 ds.l    3
  7826. sizeof                     EQU    *
  7827.                         ENDR
  7828.  
  7829. ; typedef struct TuneStatus  TuneStatus
  7830.  
  7831. kStopTuneFade                    EQU        1                    ; do a quick, synchronous fadeout 
  7832. kStopTuneSustain                EQU        2                    ; don't silece notes 
  7833. kStopTuneInstant                EQU        4                    ; silence notes fast (else, decay them) 
  7834. kStopTuneReleaseChannels        EQU        8                    ; afterwards, let the channels go 
  7835.  
  7836. kTuneSelect                        EQU        3
  7837. kTuneSetHeaderSelect            EQU        4
  7838. kTuneGetTimeBaseSelect            EQU        5
  7839. kTuneSetTimeScaleSelect            EQU        6
  7840. kTuneGetTimeScaleSelect            EQU        7
  7841. kTuneGetIndexedNoteChannelSelect EQU        8
  7842. kTuneDummy                        EQU        9
  7843. kTuneQueueSelect                EQU        10
  7844. kTuneInstantSelect                EQU        11
  7845. kTuneGetStatusSelect            EQU        12
  7846. kTuneStopSelect                    EQU        13
  7847. kTuneResumeSelect                EQU        14
  7848. kTuneFlushSelect                EQU        15
  7849. kTuneSetVolumeSelect            EQU        16
  7850. kTuneGetVolumeSelect            EQU        17
  7851. kTunePrerollSelect                EQU        18
  7852. kTuneUnrollSelect                EQU        19
  7853. kTuneSetNoteChannelsSelect        EQU        20
  7854. kTuneSetPartTransposeSelect        EQU        21
  7855. kTuneGetStateSelect                EQU        22
  7856. kTuneLastSelector                EQU        23
  7857.  
  7858. ; typedef ComponentInstance  TunePlayer
  7859.  
  7860. kMaxTunePlayerParts                EQU        32
  7861. kTunePlayerType                    EQU        'tune'
  7862.  
  7863. ;--------------------------
  7864. ;    Prototypes
  7865. ;--------------------------
  7866. ;
  7867. ; pascal ComponentResult TuneSetHeader(TunePlayer tp, unsigned long *header)
  7868. ;
  7869.     IF ¬ GENERATINGCFM THEN
  7870.         Macro
  7871.         _TuneSetHeader
  7872.             dc.w     $2F3C
  7873.             dc.w     $0004
  7874.             dc.w     $0004
  7875.             moveq    #0,d0
  7876.             dc.w     $A82A
  7877.         EndM
  7878.     ELSE
  7879.         IMPORT    TuneSetHeader
  7880.     ENDIF
  7881.  
  7882. ;
  7883. ; pascal ComponentResult TuneSetNoteChannels(TunePlayer tp, unsigned long count, NoteChannel *noteChannelList, TunePlayCallBackUPP playCallBackProc, long refCon)
  7884. ;
  7885.     IF ¬ GENERATINGCFM THEN
  7886.         Macro
  7887.         _TuneSetNoteChannels
  7888.             dc.w     $2F3C
  7889.             dc.w     $0010
  7890.             dc.w     $0014
  7891.             moveq    #0,d0
  7892.             dc.w     $A82A
  7893.         EndM
  7894.     ELSE
  7895.         IMPORT    TuneSetNoteChannels
  7896.     ENDIF
  7897.  
  7898. ;
  7899. ; pascal ComponentResult TuneSetPartTranspose(TunePlayer tp, unsigned long part, long transpose, long velocityShift)
  7900. ;
  7901.     IF ¬ GENERATINGCFM THEN
  7902.         Macro
  7903.         _TuneSetPartTranspose
  7904.             dc.w     $2F3C
  7905.             dc.w     $000C
  7906.             dc.w     $0015
  7907.             moveq    #0,d0
  7908.             dc.w     $A82A
  7909.         EndM
  7910.     ELSE
  7911.         IMPORT    TuneSetPartTranspose
  7912.     ENDIF
  7913.  
  7914. ;
  7915. ; pascal ComponentResult TuneGetTimeBase(TunePlayer tp, TimeBase *tb)
  7916. ;
  7917.     IF ¬ GENERATINGCFM THEN
  7918.         Macro
  7919.         _TuneGetTimeBase
  7920.             dc.w     $2F3C
  7921.             dc.w     $0004
  7922.             dc.w     $0005
  7923.             moveq    #0,d0
  7924.             dc.w     $A82A
  7925.         EndM
  7926.     ELSE
  7927.         IMPORT    TuneGetTimeBase
  7928.     ENDIF
  7929.  
  7930. ;
  7931. ; pascal ComponentResult TuneSetTimeScale(TunePlayer tp, TimeScale scale)
  7932. ;
  7933.     IF ¬ GENERATINGCFM THEN
  7934.         Macro
  7935.         _TuneSetTimeScale
  7936.             dc.w     $2F3C
  7937.             dc.w     $0004
  7938.             dc.w     $0006
  7939.             moveq    #0,d0
  7940.             dc.w     $A82A
  7941.         EndM
  7942.     ELSE
  7943.         IMPORT    TuneSetTimeScale
  7944.     ENDIF
  7945.  
  7946. ;
  7947. ; pascal ComponentResult TuneGetTimeScale(TunePlayer tp, TimeScale *scale)
  7948. ;
  7949.     IF ¬ GENERATINGCFM THEN
  7950.         Macro
  7951.         _TuneGetTimeScale
  7952.             dc.w     $2F3C
  7953.             dc.w     $0004
  7954.             dc.w     $0007
  7955.             moveq    #0,d0
  7956.             dc.w     $A82A
  7957.         EndM
  7958.     ELSE
  7959.         IMPORT    TuneGetTimeScale
  7960.     ENDIF
  7961.  
  7962. ;
  7963. ; pascal ComponentResult TuneGetIndexedNoteChannel(TunePlayer tp, long i, NoteChannel *nc)
  7964. ;
  7965.     IF ¬ GENERATINGCFM THEN
  7966.         Macro
  7967.         _TuneGetIndexedNoteChannel
  7968.             dc.w     $2F3C
  7969.             dc.w     $0008
  7970.             dc.w     $0008
  7971.             moveq    #0,d0
  7972.             dc.w     $A82A
  7973.         EndM
  7974.     ELSE
  7975.         IMPORT    TuneGetIndexedNoteChannel
  7976.     ENDIF
  7977.  
  7978. ; Values for when to start. 
  7979. kTuneStartNow                    EQU        1                    ; start after buffer is implied 
  7980. kTuneDontClipNotes                EQU        2                    ; allow notes to finish their durations outside sample 
  7981. kTuneExcludeEdgeNotes            EQU        4                    ; dont play notes that start at end of tune 
  7982. kTuneQuickStart                    EQU        8                    ; Leave all the controllers where they are, ignore start time 
  7983. kTuneLoopUntil                    EQU        16                    ; loop a queued tune if there's nothing else in the queue 
  7984. kTuneStartNewMaster                EQU        16384
  7985.  
  7986. ;
  7987. ; pascal ComponentResult TuneQueue(TunePlayer tp, unsigned long *tune, Fixed tuneRate, unsigned long tuneStartPosition, unsigned long tuneStopPosition, unsigned long queueFlags, TuneCallBackUPP callBackProc, long refCon)
  7988. ;
  7989.     IF ¬ GENERATINGCFM THEN
  7990.         Macro
  7991.         _TuneQueue
  7992.             dc.w     $2F3C
  7993.             dc.w     $001C
  7994.             dc.w     $000A
  7995.             moveq    #0,d0
  7996.             dc.w     $A82A
  7997.         EndM
  7998.     ELSE
  7999.         IMPORT    TuneQueue
  8000.     ENDIF
  8001.  
  8002. ;
  8003. ; pascal ComponentResult TuneInstant(TunePlayer tp, unsigned long *tune, long tunePosition)
  8004. ;
  8005.     IF ¬ GENERATINGCFM THEN
  8006.         Macro
  8007.         _TuneInstant
  8008.             dc.w     $2F3C
  8009.             dc.w     $0008
  8010.             dc.w     $000B
  8011.             moveq    #0,d0
  8012.             dc.w     $A82A
  8013.         EndM
  8014.     ELSE
  8015.         IMPORT    TuneInstant
  8016.     ENDIF
  8017.  
  8018. ;
  8019. ; pascal ComponentResult TuneGetStatus(TunePlayer tp, TuneStatus *status)
  8020. ;
  8021.     IF ¬ GENERATINGCFM THEN
  8022.         Macro
  8023.         _TuneGetStatus
  8024.             dc.w     $2F3C
  8025.             dc.w     $0004
  8026.             dc.w     $000C
  8027.             moveq    #0,d0
  8028.             dc.w     $A82A
  8029.         EndM
  8030.     ELSE
  8031.         IMPORT    TuneGetStatus
  8032.     ENDIF
  8033.  
  8034. ; Values for when to start. 
  8035. kStopSustain                    EQU        1                    ; Leaves notes playing, not silent 
  8036. kStopFadeout                    EQU        2                    ; Does a synchronous fade-out 
  8037.  
  8038. ;
  8039. ; pascal ComponentResult TuneStop(TunePlayer tp, long stopFlags)
  8040. ;
  8041.     IF ¬ GENERATINGCFM THEN
  8042.         Macro
  8043.         _TuneStop
  8044.             dc.w     $2F3C
  8045.             dc.w     $0004
  8046.             dc.w     $000D
  8047.             moveq    #0,d0
  8048.             dc.w     $A82A
  8049.         EndM
  8050.     ELSE
  8051.         IMPORT    TuneStop
  8052.     ENDIF
  8053.  
  8054. ;
  8055. ; pascal ComponentResult TuneResume(TunePlayer tp)
  8056. ;
  8057.     IF ¬ GENERATINGCFM THEN
  8058.         Macro
  8059.         _TuneResume
  8060.             dc.w     $2F3C
  8061.             dc.w     $0000
  8062.             dc.w     $000E
  8063.             moveq    #0,d0
  8064.             dc.w     $A82A
  8065.         EndM
  8066.     ELSE
  8067.         IMPORT    TuneResume
  8068.     ENDIF
  8069.  
  8070. ;
  8071. ; pascal ComponentResult TuneFlush(TunePlayer tp)
  8072. ;
  8073.     IF ¬ GENERATINGCFM THEN
  8074.         Macro
  8075.         _TuneFlush
  8076.             dc.w     $2F3C
  8077.             dc.w     $0000
  8078.             dc.w     $000F
  8079.             moveq    #0,d0
  8080.             dc.w     $A82A
  8081.         EndM
  8082.     ELSE
  8083.         IMPORT    TuneFlush
  8084.     ENDIF
  8085.  
  8086. ;
  8087. ; pascal ComponentResult TuneSetVolume(TunePlayer tp, Fixed volume)
  8088. ;
  8089.     IF ¬ GENERATINGCFM THEN
  8090.         Macro
  8091.         _TuneSetVolume
  8092.             dc.w     $2F3C
  8093.             dc.w     $0004
  8094.             dc.w     $0010
  8095.             moveq    #0,d0
  8096.             dc.w     $A82A
  8097.         EndM
  8098.     ELSE
  8099.         IMPORT    TuneSetVolume
  8100.     ENDIF
  8101.  
  8102. ;
  8103. ; pascal ComponentResult TuneGetVolume(TunePlayer tp)
  8104. ;
  8105.     IF ¬ GENERATINGCFM THEN
  8106.         Macro
  8107.         _TuneGetVolume
  8108.             dc.w     $2F3C
  8109.             dc.w     $0000
  8110.             dc.w     $0011
  8111.             moveq    #0,d0
  8112.             dc.w     $A82A
  8113.         EndM
  8114.     ELSE
  8115.         IMPORT    TuneGetVolume
  8116.     ENDIF
  8117.  
  8118. ;
  8119. ; pascal ComponentResult TunePreroll(TunePlayer tp)
  8120. ;
  8121.     IF ¬ GENERATINGCFM THEN
  8122.         Macro
  8123.         _TunePreroll
  8124.             dc.w     $2F3C
  8125.             dc.w     $0000
  8126.             dc.w     $0012
  8127.             moveq    #0,d0
  8128.             dc.w     $A82A
  8129.         EndM
  8130.     ELSE
  8131.         IMPORT    TunePreroll
  8132.     ENDIF
  8133.  
  8134. ;
  8135. ; pascal ComponentResult TuneUnroll(TunePlayer tp)
  8136. ;
  8137.     IF ¬ GENERATINGCFM THEN
  8138.         Macro
  8139.         _TuneUnroll
  8140.             dc.w     $2F3C
  8141.             dc.w     $0000
  8142.             dc.w     $0013
  8143.             moveq    #0,d0
  8144.             dc.w     $A82A
  8145.         EndM
  8146.     ELSE
  8147.         IMPORT    TuneUnroll
  8148.     ENDIF
  8149.  
  8150. ;
  8151. ; pascal ComponentResult TuneGetState(TunePlayer tp, TimeValue t, Handle *state)
  8152. ;
  8153.     IF ¬ GENERATINGCFM THEN
  8154.         Macro
  8155.         _TuneGetState
  8156.             dc.w     $2F3C
  8157.             dc.w     $0008
  8158.             dc.w     $0016
  8159.             moveq    #0,d0
  8160.             dc.w     $A82A
  8161.         EndM
  8162.     ELSE
  8163.         IMPORT    TuneGetState
  8164.     ENDIF
  8165.  
  8166. ; typedef unsigned long     MusicOpWord, *MusicOpWordPtr
  8167. ;     QuickTime Music Track Event Formats:
  8168. ;
  8169. ;    At this time, QuickTime music tracks support 5 different event types -- REST events,
  8170. ;    short NOTE events, short CONTROL events, short GENERAL events, Long NOTE events, 
  8171. ;    long CONTROL events, and variable GENERAL events.
  8172. ;        • REST Event (4 bytes/event):
  8173. ;    
  8174. ;            (0 0 0) (5-bit UNUSED) (24-bit Rest Duration)
  8175. ;        
  8176. ;        • Short NOTE Events (4 bytes/event):
  8177. ;    
  8178. ;            (0 0 1) (5-bit Part) (6-bit Pitch) (7-bit Volume) (11-bit Duration)
  8179. ;        
  8180. ;            where:    Pitch is offset by 32 (Actual pitch = pitch field + 32)
  8181. ;
  8182. ;        • Short CONTROL Events (4 bytes/event):
  8183. ;    
  8184. ;            (0 1 0) (5-bit Part) (8-bit Controller) (1-bit UNUSED) (1-bit Sign) (7-bit MSB) (7-bit LSB)
  8185. ;                                                                         ( or 15-bit Signed Value)
  8186. ;        • Short GENERAL Event (4 bytes/event):
  8187. ;    
  8188. ;            (0 1 1) (1-bit UNUSED) (12-bit Sub-Type) (16-bit Value)
  8189. ;    
  8190. ;        • Long NOTE Events (8 bytes/event):
  8191. ;    
  8192. ;            (1 0 0 1) (12-bit Part) (1-bit UNUSED) (7-bit Pitch) (1-bit UNUSED) (7-bit Volume)
  8193. ;            (1 0) (8-bit UNUSED) (22-bit Duration)
  8194. ;        
  8195. ;        • Long CONTROL Event (8 bytes/event):
  8196. ;        
  8197. ;            (1 0 1 0) (12-bit Part) (16-bit Value MSB) 
  8198. ;            (1 0) (14-bit Controller) (16-bit Value LSB)
  8199. ;    
  8200. ;        • Long KNOB Event (8 bytes/event):
  8201. ;    
  8202. ;            (1 0 1 1) (12-bit Sub-Type) (16-bit Value MSB)
  8203. ;            (1 0) (14-bit KNOB) (16-bit Value LSB)
  8204. ;    
  8205. ;        • Variable GENERAL Length Events (N bytes/event):
  8206. ;    
  8207. ;            (1 1 1 1) (12-bit Sub-Type) (16-bit Length)
  8208. ;                :
  8209. ;            (32-bit Data values)
  8210. ;                :
  8211. ;            (1 1) (14-bit UNUSED) (16-bit Length)
  8212. ;    
  8213. ;            where:    Length field is the number of LONG words in the record.
  8214. ;                    Lengths include the first and last long words (Minimum length = 2)
  8215. ;                
  8216. ;    The following event type values have not been used yet and are reserved for 
  8217. ;    future expansion:
  8218. ;        
  8219. ;        • (1 0 0 0)        (8 bytes/event)
  8220. ;        • (1 1 0 0)        (N bytes/event)
  8221. ;        • (1 1 0 1)        (N bytes/event)
  8222. ;        • (1 1 1 0)        (N bytes/event)
  8223. ;        
  8224. ;    For all events, the following generalizations apply:
  8225. ;    
  8226. ;        -    All duration values are specified in Millisecond units.
  8227. ;        -     Pitch values are intended to map directly to the MIDI key numbers.
  8228. ;        -    Controllers from 0 to 127 correspond to the standard MIDI controllers.
  8229. ;            Controllers greater than 127 correspond to other controls (i.e., Pitch Bend, 
  8230. ;            Key Pressure, and Channel Pressure).    
  8231. ;
  8232. ; Defines for the implemented music event data fields
  8233.  
  8234. kRestEventType                    EQU        $0                    ; lower 3-bits 
  8235. kNoteEventType                    EQU        $1                    ; lower 3-bits 
  8236. kControlEventType                EQU        $2                    ; lower 3-bits 
  8237. kMarkerEventType                EQU        $3                    ; lower 3-bits 
  8238. kUndefined1EventType            EQU        $8                    ; 4-bits 
  8239. kXNoteEventType                    EQU        $9                    ; 4-bits 
  8240. kXControlEventType                EQU        $A                    ; 4-bits 
  8241. kKnobEventType                    EQU        $B                    ; 4-bits 
  8242. kUndefined2EventType            EQU        $C                    ; 4-bits 
  8243. kUndefined3EventType            EQU        $D                    ; 4-bits 
  8244. kUndefined4EventType            EQU        $E                    ; 4-bits 
  8245. kGeneralEventType                EQU        $F                    ; 4-bits 
  8246. kXEventLengthBits                EQU        $2                    ; 2 bits: indicates 8-byte event record 
  8247. kGeneralEventLengthBits            EQU        $3                    ; 2 bits: indicates variable length event record 
  8248. kEventLen                        EQU        1                    ; length of events in long words 
  8249. kXEventLen                        EQU        2
  8250. kRestEventLen                    EQU        kEventLen            ; length of events in long words 
  8251. kNoteEventLen                    EQU        kEventLen
  8252. kControlEventLen                EQU        kEventLen
  8253. kMarkerEventLen                    EQU        kEventLen
  8254. kXNoteEventLen                    EQU        kXEventLen
  8255. kXControlEventLen                EQU        kXEventLen
  8256. kGeneralEventLen                EQU        kXEventLen            ; 2 or more, however 
  8257. ; Universal Event Defines
  8258. kEventLengthFieldPos            EQU        30                    ; by looking at these two bits of the 1st or last word              
  8259. kEventLengthFieldWidth            EQU        2                    ; of an event you can determine the event length                      
  8260. ; length field: 0 & 1 => 1 long; 2 => 2 longs; 3 => variable length 
  8261. kEventTypeFieldPos                EQU        29                    ; event type field for short events 
  8262. kEventTypeFieldWidth            EQU        3                    ; short type is 3 bits 
  8263. kXEventTypeFieldPos                EQU        28                    ; event type field for extended events 
  8264. kXEventTypeFieldWidth            EQU        4                    ; extended type is 4 bits 
  8265. kEventPartFieldPos                EQU        24
  8266. kEventPartFieldWidth            EQU        5
  8267. kXEventPartFieldPos                EQU        16                    ; in the 1st long word 
  8268. kXEventPartFieldWidth            EQU        12
  8269. ; Rest Events
  8270. kRestEventDurationFieldPos        EQU        0
  8271. kRestEventDurationFieldWidth    EQU        24
  8272. kRestEventDurationMax            EQU        ((1 << kRestEventDurationFieldWidth) - 1)
  8273. ; Note Events
  8274. kNoteEventPitchFieldPos            EQU        18
  8275. kNoteEventPitchFieldWidth        EQU        6
  8276. kNoteEventPitchOffset            EQU        32                    ; add to value in pitch field to get actual pitch 
  8277. kNoteEventVolumeFieldPos        EQU        11
  8278. kNoteEventVolumeFieldWidth        EQU        7
  8279. kNoteEventVolumeOffset            EQU        0                    ; add to value in volume field to get actual volume 
  8280. kNoteEventDurationFieldPos        EQU        0
  8281. kNoteEventDurationFieldWidth    EQU        11
  8282. kNoteEventDurationMax            EQU        ((1 << kNoteEventDurationFieldWidth) - 1)
  8283. kXNoteEventPitchFieldPos        EQU        0                    ; in the 1st long word 
  8284. kXNoteEventPitchFieldWidth        EQU        16
  8285. kXNoteEventDurationFieldPos        EQU        0                    ; in the 2nd long word 
  8286. kXNoteEventDurationFieldWidth    EQU        22
  8287. kXNoteEventDurationMax            EQU        ((1 << kXNoteEventDurationFieldWidth) - 1)
  8288. kXNoteEventVolumeFieldPos        EQU        22                    ; in the 2nd long word 
  8289. kXNoteEventVolumeFieldWidth        EQU        7
  8290. ; Control Events
  8291. kControlEventControllerFieldPos    EQU        16
  8292. kControlEventControllerFieldWidth EQU        8
  8293. kControlEventValueFieldPos        EQU        0
  8294. kControlEventValueFieldWidth    EQU        16
  8295. kXControlEventControllerFieldPos EQU        0                    ; in the 2nd long word 
  8296. kXControlEventControllerFieldWidth EQU        16
  8297. kXControlEventValueFieldPos        EQU        0                    ; in the 1st long word 
  8298. kXControlEventValueFieldWidth    EQU        16
  8299. ; Knob Events
  8300. kKnobEventValueHighFieldPos        EQU        0                    ; 1st long word 
  8301. kKnobEventValueHighFieldWidth    EQU        16
  8302. kKnobEventKnobFieldPos            EQU        16                    ; 2nd long word 
  8303. kKnobEventKnobFieldWidth        EQU        14
  8304. kKnobEventValueLowFieldPos        EQU        0                    ; 2nd long word 
  8305. kKnobEventValueLowFieldWidth    EQU        16
  8306. ; Marker Events
  8307. kMarkerEventSubtypeFieldPos        EQU        16
  8308. kMarkerEventSubtypeFieldWidth    EQU        8
  8309. kMarkerEventValueFieldPos        EQU        0
  8310. kMarkerEventValueFieldWidth        EQU        16
  8311. ; General Events
  8312. kGeneralEventSubtypeFieldPos    EQU        16                    ; in the last long word 
  8313. kGeneralEventSubtypeFieldWidth    EQU        14
  8314. kGeneralEventLengthFieldPos        EQU        0                    ; in the 1st & last long words 
  8315. kGeneralEventLengthFieldWidth    EQU        16
  8316.  
  8317. kGeneralEventNoteRequest        EQU        1                    ; Encapsulates NoteRequest data structure 
  8318. kGeneralEventInstrument            EQU        2                    ; Encapsulates poly, typical poly, followed by InstrumentData record 
  8319. kGeneralEventFlatInstrument        EQU        3                    ; Encapsulates poly, typical poly, followed by FlatInstrument record 
  8320. kGeneralEventPartKey            EQU        4
  8321. kGeneralEventTuneDifference        EQU        5                    ; Contains a standard sequence, with end marker, for the tune difference of a sequence piece 
  8322. kGeneralEventAtomicInstrument    EQU        6                    ; Encapsulates AtomicInstrument record 
  8323.  
  8324. TCSourceRefNameType                EQU        'name'
  8325.  
  8326. tcDropFrame                        EQU        1 << 0
  8327. tc24HourMax                        EQU        1 << 1
  8328. tcNegTimesOK                    EQU        1 << 2
  8329. tcCounter                        EQU        1 << 3
  8330.  
  8331. TimeCodeDef             RECORD    0
  8332. flags                     ds.l    1                                    ; drop-frame, etc.
  8333. fTimeScale                 ds.l    1                                    ; time scale of frameDuration (eg. 2997)
  8334. frameDuration             ds.l    1                                    ; duration of each frame (eg. 100)
  8335. numFrames                 ds.b    1                                    ; frames/sec for timecode (eg. 30) OR frames/tick for counter mode
  8336. padding                     ds.b    1                                    ; unused padding byte
  8337. sizeof                     EQU    *
  8338.                         ENDR
  8339.  
  8340. ; typedef struct TimeCodeDef  TimeCodeDef
  8341.  
  8342. tctNegFlag                        EQU        $80                    ; negative bit is in minutes
  8343.  
  8344. TimeCodeTime             RECORD    0
  8345. hours                     ds.b    1
  8346. minutes                     ds.b    1
  8347. seconds                     ds.b    1
  8348. frames                     ds.b    1
  8349. sizeof                     EQU    *
  8350.                         ENDR
  8351.  
  8352. ; typedef struct TimeCodeTime  TimeCodeTime
  8353. TimeCodeCounter         RECORD    0
  8354. counter                     ds.l    1
  8355. sizeof                     EQU    *
  8356.                         ENDR
  8357.  
  8358. ; typedef struct TimeCodeCounter  TimeCodeCounter
  8359. TimeCodeDescription     RECORD    0
  8360. descSize                 ds.l    1                                    ; standard sample description header
  8361. dataFormat                 ds.l    1
  8362. resvd1                     ds.l    1
  8363. resvd2                     ds.w    1
  8364. dataRefIndex             ds.w    1
  8365. flags                     ds.l    1                                    ; timecode specific stuff
  8366. timeCodeDef                 ds        TimeCodeDef
  8367. srcRef                     ds.l    1
  8368. sizeof                     EQU    *
  8369.                         ENDR
  8370.  
  8371. ; typedef struct TimeCodeDescription  TimeCodeDescription
  8372. ; typedef TimeCodeDescription  *TimeCodeDescriptionPtr
  8373. ; typedef TimeCodeDescriptionPtr  *TimeCodeDescriptionHandle
  8374.  
  8375. tcdfShowTimeCode                EQU        1 << 0
  8376.  
  8377. kTCGetCurrentTimeCodeSelect        EQU        257
  8378. kTCGetTimeCodeAtTimeSelect        EQU        258
  8379. kTCTimeCodeToStringSelect        EQU        259
  8380. kTCTimeCodeToFrameNumberSelect    EQU        260
  8381. kTCFrameNumberToTimeCodeSelect    EQU        261
  8382. kTCGetSourceRefSelect            EQU        262
  8383. kTCSetSourceRefSelect            EQU        263
  8384. kTCSetTimeCodeFlagsSelect        EQU        264
  8385. kTCGetTimeCodeFlagsSelect        EQU        265
  8386. kTCSetDisplayOptionsSelect        EQU        266
  8387. kTCGetDisplayOptionsSelect        EQU        267
  8388.  
  8389. ;
  8390. ; pascal HandlerError TCGetCurrentTimeCode(MediaHandler mh, long *frameNum, TimeCodeDef *tcdef, TimeCodeRecord *tcrec, UserData *srcRefH)
  8391. ;
  8392.     IF ¬ GENERATINGCFM THEN
  8393.         Macro
  8394.         _TCGetCurrentTimeCode
  8395.             dc.w     $2F3C
  8396.             dc.w     $0010
  8397.             dc.w     $0101
  8398.             moveq    #0,d0
  8399.             dc.w     $A82A
  8400.         EndM
  8401.     ELSE
  8402.         IMPORT    TCGetCurrentTimeCode
  8403.     ENDIF
  8404.  
  8405. ;
  8406. ; pascal HandlerError TCGetTimeCodeAtTime(MediaHandler mh, TimeValue mediaTime, long *frameNum, TimeCodeDef *tcdef, TimeCodeRecord *tcdata, UserData *srcRefH)
  8407. ;
  8408.     IF ¬ GENERATINGCFM THEN
  8409.         Macro
  8410.         _TCGetTimeCodeAtTime
  8411.             dc.w     $2F3C
  8412.             dc.w     $0014
  8413.             dc.w     $0102
  8414.             moveq    #0,d0
  8415.             dc.w     $A82A
  8416.         EndM
  8417.     ELSE
  8418.         IMPORT    TCGetTimeCodeAtTime
  8419.     ENDIF
  8420.  
  8421. ;
  8422. ; pascal HandlerError TCTimeCodeToFrameNumber(MediaHandler mh, TimeCodeDef *tcdef, TimeCodeRecord *tcrec, long *frameNumber)
  8423. ;
  8424.     IF ¬ GENERATINGCFM THEN
  8425.         Macro
  8426.         _TCTimeCodeToFrameNumber
  8427.             dc.w     $2F3C
  8428.             dc.w     $000C
  8429.             dc.w     $0104
  8430.             moveq    #0,d0
  8431.             dc.w     $A82A
  8432.         EndM
  8433.     ELSE
  8434.         IMPORT    TCTimeCodeToFrameNumber
  8435.     ENDIF
  8436.  
  8437. ;
  8438. ; pascal HandlerError TCFrameNumberToTimeCode(MediaHandler mh, long frameNumber, TimeCodeDef *tcdef, TimeCodeRecord *tcrec)
  8439. ;
  8440.     IF ¬ GENERATINGCFM THEN
  8441.         Macro
  8442.         _TCFrameNumberToTimeCode
  8443.             dc.w     $2F3C
  8444.             dc.w     $000C
  8445.             dc.w     $0105
  8446.             moveq    #0,d0
  8447.             dc.w     $A82A
  8448.         EndM
  8449.     ELSE
  8450.         IMPORT    TCFrameNumberToTimeCode
  8451.     ENDIF
  8452.  
  8453. ;
  8454. ; pascal HandlerError TCTimeCodeToString(MediaHandler mh, TimeCodeDef *tcdef, TimeCodeRecord *tcrec, StringPtr tcStr)
  8455. ;
  8456.     IF ¬ GENERATINGCFM THEN
  8457.         Macro
  8458.         _TCTimeCodeToString
  8459.             dc.w     $2F3C
  8460.             dc.w     $000C
  8461.             dc.w     $0103
  8462.             moveq    #0,d0
  8463.             dc.w     $A82A
  8464.         EndM
  8465.     ELSE
  8466.         IMPORT    TCTimeCodeToString
  8467.     ENDIF
  8468.  
  8469. ;
  8470. ; pascal HandlerError TCGetSourceRef(MediaHandler mh, TimeCodeDescriptionHandle tcdH, UserData *srefH)
  8471. ;
  8472.     IF ¬ GENERATINGCFM THEN
  8473.         Macro
  8474.         _TCGetSourceRef
  8475.             dc.w     $2F3C
  8476.             dc.w     $0008
  8477.             dc.w     $0106
  8478.             moveq    #0,d0
  8479.             dc.w     $A82A
  8480.         EndM
  8481.     ELSE
  8482.         IMPORT    TCGetSourceRef
  8483.     ENDIF
  8484.  
  8485. ;
  8486. ; pascal HandlerError TCSetSourceRef(MediaHandler mh, TimeCodeDescriptionHandle tcdH, UserData srefH)
  8487. ;
  8488.     IF ¬ GENERATINGCFM THEN
  8489.         Macro
  8490.         _TCSetSourceRef
  8491.             dc.w     $2F3C
  8492.             dc.w     $0008
  8493.             dc.w     $0107
  8494.             moveq    #0,d0
  8495.             dc.w     $A82A
  8496.         EndM
  8497.     ELSE
  8498.         IMPORT    TCSetSourceRef
  8499.     ENDIF
  8500.  
  8501. ;
  8502. ; pascal HandlerError TCSetTimeCodeFlags(MediaHandler mh, long flags, long flagsMask)
  8503. ;
  8504.     IF ¬ GENERATINGCFM THEN
  8505.         Macro
  8506.         _TCSetTimeCodeFlags
  8507.             dc.w     $2F3C
  8508.             dc.w     $0008
  8509.             dc.w     $0108
  8510.             moveq    #0,d0
  8511.             dc.w     $A82A
  8512.         EndM
  8513.     ELSE
  8514.         IMPORT    TCSetTimeCodeFlags
  8515.     ENDIF
  8516.  
  8517. ;
  8518. ; pascal HandlerError TCGetTimeCodeFlags(MediaHandler mh, long *flags)
  8519. ;
  8520.     IF ¬ GENERATINGCFM THEN
  8521.         Macro
  8522.         _TCGetTimeCodeFlags
  8523.             dc.w     $2F3C
  8524.             dc.w     $0004
  8525.             dc.w     $0109
  8526.             moveq    #0,d0
  8527.             dc.w     $A82A
  8528.         EndM
  8529.     ELSE
  8530.         IMPORT    TCGetTimeCodeFlags
  8531.     ENDIF
  8532.  
  8533. ;
  8534. ; pascal HandlerError TCSetDisplayOptions(MediaHandler mh, TCTextOptionsPtr textOptions)
  8535. ;
  8536.     IF ¬ GENERATINGCFM THEN
  8537.         Macro
  8538.         _TCSetDisplayOptions
  8539.             dc.w     $2F3C
  8540.             dc.w     $0004
  8541.             dc.w     $010A
  8542.             moveq    #0,d0
  8543.             dc.w     $A82A
  8544.         EndM
  8545.     ELSE
  8546.         IMPORT    TCSetDisplayOptions
  8547.     ENDIF
  8548.  
  8549. ;
  8550. ; pascal HandlerError TCGetDisplayOptions(MediaHandler mh, TCTextOptionsPtr textOptions)
  8551. ;
  8552.     IF ¬ GENERATINGCFM THEN
  8553.         Macro
  8554.         _TCGetDisplayOptions
  8555.             dc.w     $2F3C
  8556.             dc.w     $0004
  8557.             dc.w     $010B
  8558.             moveq    #0,d0
  8559.             dc.w     $A82A
  8560.         EndM
  8561.     ELSE
  8562.         IMPORT    TCGetDisplayOptions
  8563.     ENDIF
  8564.  
  8565. ; UPP call backs 
  8566.     ENDIF ; __QUICKTIMECOMPONENTS__
  8567.